1 #ifndef XFILEIMAGE_H 2 #define XFILEIMAGE_H 3 4 #include "InputDialog.h" 5 #include "PathLinker.h" 6 7 class XFileImage : public FXMainWindow 8 { 9 FXDECLARE(XFileImage) 10 protected: 11 FXbool hiddenfiles; // Show or hide hidden files 12 FXbool thumbnails; // Show or hide image thumbnails 13 FXuint fileview; // File list view 14 FXuint liststyle; // Icon list style 15 FXImageView* imageview; // Image viewer 16 FXRecentFiles mrufiles; // Recent files 17 FXString filename; // File being viewed 18 FXMenuBar* menubar; // Menu bar 19 FXToolBar* toolbar; // Tool bar 20 FXToolBarShell* dragshell1; // Shell for floating menubar 21 FXHorizontalFrame* statusbar; // Status bar 22 FXbool filelistbefore; 23 FXbool vertpanels; 24 FXSplitter* splitter; // Splitter 25 FXVerticalFrame* filebox; // Box containing directories/files 26 FileList* filelist; // File List 27 FXLabel* label; // Directory path 28 FXMenuPane* filemenu; // File menu 29 FXMenuPane* viewmenu; // View menu 30 FXMenuPane* helpmenu; // Help menu 31 FXMenuPane* imagemenu; // Image menu 32 FXMenuPane* prefsmenu; // Preferences menu 33 FXTextField* filter; // Filter for tree list 34 FXImage* img; // Image loaded 35 FXImage* tmpimg; // Temporary image 36 FXColor* tmpdata; // Temporary image data 37 int indZoom; // Zoom index 38 double zoomval; // Actual zoom factor 39 FXbool fitwin; // Fit window when opening an image 40 FXbool filterimgs; // List only image files in file list 41 InputDialog* printdialog; 42 FXbool smoothscroll; 43 double filewidth_pct; 44 double fileheight_pct; 45 FXArrowButton* btnbackhist; // Back history 46 FXArrowButton* btnforwardhist; // Forward history 47 PathLinker* pathlink; 48 TextLabel* pathtext; 49 int prev_width; 50 int prev_height; 51 protected: XFileImage()52 XFileImage() : hiddenfiles(false), thumbnails(false), fileview(0), liststyle(0), imageview(NULL), menubar(NULL), toolbar(NULL), dragshell1(NULL), 53 statusbar(NULL), filelistbefore(false), vertpanels(false), splitter(NULL), 54 filebox(NULL), filelist(NULL), label(NULL), filemenu(NULL), viewmenu(NULL), helpmenu(NULL), imagemenu(NULL), 55 prefsmenu(NULL), filter(NULL), img(NULL), tmpimg(NULL), tmpdata(NULL), indZoom(0), 56 zoomval(0.0), fitwin(false), filterimgs(false), printdialog(NULL), smoothscroll(false), filewidth_pct(0.0), fileheight_pct(0.0), 57 btnbackhist(NULL), btnforwardhist(NULL), pathlink(NULL), pathtext(NULL), prev_width(0), prev_height(0) 58 {} 59 public: 60 long onCmdAbout(FXObject*, FXSelector, void*); 61 long onCmdOpen(FXObject*, FXSelector, void*); 62 long onCmdPrint(FXObject*, FXSelector, void*); 63 long onCmdShowMini(FXObject*, FXSelector, void*); 64 long onCmdShowBig(FXObject*, FXSelector, void*); 65 long onCmdShowDetails(FXObject*, FXSelector, void*); 66 long onCmdShowRows(FXObject*, FXSelector, void*); 67 long onCmdShowCols(FXObject*, FXSelector, void*); 68 long onCmdAutosize(FXObject*, FXSelector, void*); 69 long onCmdSave(FXObject*, FXSelector, void*); 70 long onSigHarvest(FXObject*, FXSelector, void*); 71 long onCmdQuit(FXObject*, FXSelector, void*); 72 long onCmdRestart(FXObject*, FXSelector, void*); 73 long onUpdTitle(FXObject*, FXSelector, void*); 74 long onCmdRecentFile(FXObject*, FXSelector, void*); 75 long onCmdRotate(FXObject*, FXSelector, void*); 76 long onCmdMirror(FXObject*, FXSelector, void*); 77 long onCmdZoomIn(FXObject*, FXSelector, void*); 78 long onCmdZoomOut(FXObject*, FXSelector, void*); 79 long onCmdZoom100(FXObject*, FXSelector, void*); 80 long onCmdZoomWin(FXObject*, FXSelector, void*); 81 long onUpdImage(FXObject*, FXSelector, void*); 82 long onUpdFileView(FXObject*, FXSelector, void*); 83 long onUpdIconView(FXObject*, FXSelector, void*); 84 long onCmdToggleHidden(FXObject*, FXSelector, void*); 85 long onUpdToggleHidden(FXObject*, FXSelector, void*); 86 long onCmdToggleThumbnails(FXObject*, FXSelector, void*); 87 long onUpdToggleThumbnails(FXObject*, FXSelector, void*); 88 long onCmdItemDoubleClicked(FXObject*, FXSelector, void*); 89 long onCmdItemClicked(FXObject*, FXSelector, void*); 90 long onCmdToggleFitWin(FXObject*, FXSelector, void*); 91 long onUpdToggleFitWin(FXObject*, FXSelector, void*); 92 long onCmdPopupMenu(FXObject*, FXSelector, void*); 93 long onCmdHome(FXObject*, FXSelector, void*); 94 long onCmdWork(FXObject*, FXSelector, void*); 95 long onCmdDirUp(FXObject*, FXSelector, void*); 96 long onUpdDirUp(FXObject*, FXSelector, void*); 97 long onCmdDirBack(FXObject*, FXSelector, void*); 98 long onUpdDirBack(FXObject*, FXSelector, void*); 99 long onCmdDirForward(FXObject*, FXSelector, void*); 100 long onUpdDirForward(FXObject*, FXSelector, void*); 101 long onCmdDirBackHist(FXObject*, FXSelector, void*); 102 long onUpdDirBackHist(FXObject*, FXSelector, void*); 103 long onCmdDirForwardHist(FXObject*, FXSelector, void*); 104 long onUpdDirForwardHist(FXObject*, FXSelector, void*); 105 long onCmdToggleFilterImages(FXObject*, FXSelector, void*); 106 long onUpdToggleFilterImages(FXObject*, FXSelector, void*); 107 long onCmdHorzVertPanels(FXObject*, FXSelector, void*); 108 long onUpdHorzVertPanels(FXObject*, FXSelector, void*); 109 long onCmdToggleFileListBefore(FXObject*, FXSelector, void*); 110 long onUpdToggleFileListBefore(FXObject*, FXSelector, void*); 111 long onKeyPress(FXObject*, FXSelector, void*); 112 long onKeyRelease(FXObject*, FXSelector, void*); 113 114 115 public: 116 enum 117 { 118 ID_ABOUT=FXMainWindow::ID_LAST, 119 ID_OPEN, 120 ID_POPUP_MENU, 121 ID_TOGGLE_HIDDEN, 122 ID_TOGGLE_THUMBNAILS, 123 ID_SHOW_MINI_ICONS, 124 ID_SHOW_BIG_ICONS, 125 ID_SHOW_DETAILS, 126 ID_COLS, 127 ID_ROWS, 128 ID_AUTO, 129 ID_TITLE, 130 ID_PRINT, 131 ID_HARVEST, 132 ID_QUIT, 133 ID_RESTART, 134 ID_FILELIST, 135 ID_RECENTFILE, 136 ID_ROTATE_90, 137 ID_ROTATE_270, 138 ID_MIRROR_HOR, 139 ID_MIRROR_VER, 140 ID_SCALE, 141 ID_ZOOM_IN, 142 ID_ZOOM_OUT, 143 ID_ZOOM_100, 144 ID_ZOOM_WIN, 145 ID_TOGGLE_FIT_WIN, 146 ID_TOGGLE_FILTER_IMAGES, 147 ID_GO_HOME, 148 ID_GO_WORK, 149 ID_DIR_UP, 150 ID_DIR_BACK, 151 ID_DIR_FORWARD, 152 ID_DIR_BACK_HIST, 153 ID_DIR_FORWARD_HIST, 154 ID_HORZ_PANELS, 155 ID_VERT_PANELS, 156 ID_TOGGLE_FILELIST_BEFORE, 157 ID_LAST 158 }; 159 public: 160 XFileImage(FXApp*, FXbool); 161 virtual void create(); 162 FXbool loadimage(const FXString&); 163 void saveConfig(); 164 165 void start(FXString); 166 virtual ~XFileImage(); setSmoothScroll(FXbool smooth)167 void setSmoothScroll(FXbool smooth) 168 { 169 smoothscroll = smooth; 170 } 171 }; 172 #endif 173