[773] | 1 | // |
---|
| 2 | // "$Id: FileIcon.h 2871 2002-12-10 02:01:07Z easysw $" |
---|
| 3 | // |
---|
| 4 | // Fl_FileIcon definitions for the Fast Light Tool Kit (FLTK). |
---|
| 5 | // |
---|
| 6 | // Copyright 1997-1999 by Easy Software Products. |
---|
| 7 | // |
---|
| 8 | // This library is free software; you can redistribute it and/or |
---|
| 9 | // modify it under the terms of the GNU Library General Public |
---|
| 10 | // License as published by the Free Software Foundation; either |
---|
| 11 | // version 2 of the License, or (at your option) any later version. |
---|
| 12 | // |
---|
| 13 | // This library is distributed in the hope that it will be useful, |
---|
| 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of |
---|
| 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
---|
| 16 | // Library General Public License for more details. |
---|
| 17 | // |
---|
| 18 | // You should have received a copy of the GNU Library General Public |
---|
| 19 | // License along with this library; if not, write to the Free Software |
---|
| 20 | // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 |
---|
| 21 | // USA. |
---|
| 22 | // |
---|
| 23 | // Please report all bugs and problems to "fltk-bugs@fltk.org". |
---|
| 24 | // |
---|
| 25 | |
---|
| 26 | #ifndef fltk_FileIcon_h |
---|
| 27 | #define fltk_FileIcon_h |
---|
| 28 | |
---|
| 29 | #include "FL_API.h" |
---|
| 30 | #include "Color.h" |
---|
| 31 | |
---|
| 32 | namespace fltk { |
---|
| 33 | |
---|
| 34 | // This should be some kind of subclass of Image |
---|
| 35 | |
---|
| 36 | class FL_API FileIcon |
---|
| 37 | { |
---|
| 38 | static FileIcon *first_; // Pointer to first icon/filetype |
---|
| 39 | FileIcon *next_; // Pointer to next icon/filetype |
---|
| 40 | const char *pattern_; // Pattern string |
---|
| 41 | int type_; // Match only if directory or file? |
---|
| 42 | int num_data_; // Number of data elements |
---|
| 43 | int alloc_data_; // Number of allocated elements |
---|
| 44 | short *data_; // Icon data |
---|
| 45 | |
---|
| 46 | public: |
---|
| 47 | |
---|
| 48 | enum // File types |
---|
| 49 | { |
---|
| 50 | ANY, // Any kind of file |
---|
| 51 | PLAIN, // Only plain files |
---|
| 52 | FIFO, // Only named pipes |
---|
| 53 | DEVICE, // Only character and block devices |
---|
| 54 | LINK, // Only symbolic links |
---|
| 55 | DIR // Only directories |
---|
| 56 | }; |
---|
| 57 | |
---|
| 58 | enum // Data opcodes |
---|
| 59 | { |
---|
| 60 | END, // End of primitive/icon |
---|
| 61 | COLOR, // Followed by color index |
---|
| 62 | LINE, // Start of line |
---|
| 63 | CLOSEDLINE, // Start of closed line |
---|
| 64 | POLYGON, // Start of polygon |
---|
| 65 | OUTLINEPOLYGON, // Followed by outline color |
---|
| 66 | VERTEX // Followed by scaled X,Y |
---|
| 67 | }; |
---|
| 68 | |
---|
| 69 | FileIcon(const char *p, int t, int nd = 0, short *d = 0); |
---|
| 70 | ~FileIcon(); |
---|
| 71 | |
---|
| 72 | short *add(short d); |
---|
| 73 | short *add_color(short c) |
---|
| 74 | { short *d = add(COLOR); add(c); return (d); } |
---|
| 75 | short *add_vertex(int x, int y) |
---|
| 76 | { short *d = add(VERTEX); add(x); add(y); return (d); } |
---|
| 77 | short *add_vertex(float x, float y) |
---|
| 78 | { short *d = add(VERTEX); add((int)(x * 10000.0)); |
---|
| 79 | add((int)(y * 10000.0)); return (d); } |
---|
| 80 | void clear() { num_data_ = 0; } |
---|
| 81 | void draw(int x, int y, int w, int h, Color ic, int active = 1); |
---|
| 82 | // void label(Widget *w); |
---|
| 83 | // static void labeltype(const Label *o, int x, int y, int w, int h, Align a); |
---|
| 84 | void load(const char *f); |
---|
| 85 | void load_fti(const char *fti); |
---|
| 86 | void load_xpm(const char *xpm); |
---|
| 87 | const char *pattern() { return (pattern_); } |
---|
| 88 | int size() { return (num_data_); } |
---|
| 89 | int type() { return (type_); } |
---|
| 90 | short *value() { return (data_); } |
---|
| 91 | |
---|
| 92 | static FileIcon *find(const char *filename, int filetype = ANY); |
---|
| 93 | static FileIcon *first() { return (first_); } |
---|
| 94 | static void load_system_icons(void); |
---|
| 95 | }; |
---|
| 96 | |
---|
| 97 | } |
---|
| 98 | |
---|
| 99 | #endif |
---|
| 100 | |
---|
| 101 | // |
---|
| 102 | // End of "$Id: FileIcon.h 2871 2002-12-10 02:01:07Z easysw $". |
---|
| 103 | // |
---|