Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members

/home/jeroen/FOX/fox/fox-1.7.33/include/FXApp.h
00001 /********************************************************************************
00002 *                                                                               *
00003 *                     A p p l i c a t i o n   O b j e c t                       *
00004 *                                                                               *
00005 *********************************************************************************
00006 * Copyright (C) 1997,2012 by Jeroen van der Zijp.   All Rights Reserved.        *
00007 *********************************************************************************
00008 * This library is free software; you can redistribute it and/or modify          *
00009 * it under the terms of the GNU Lesser General Public License as published by   *
00010 * the Free Software Foundation; either version 3 of the License, or             *
00011 * (at your option) any later version.                                           *
00012 *                                                                               *
00013 * This library is distributed in the hope that it will be useful,               *
00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of                *
00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                 *
00016 * GNU Lesser General Public License for more details.                           *
00017 *                                                                               *
00018 * You should have received a copy of the GNU Lesser General Public License      *
00019 * along with this program.  If not, see <http://www.gnu.org/licenses/>          *
00020 ********************************************************************************/
00021 #ifndef FXAPP_H
00022 #define FXAPP_H
00023 
00024 #ifndef FXOBJECT_H
00025 #include "FXObject.h"
00026 #endif
00027 
00028 namespace FX {
00029 
00030 
00031 // Forward declarations
00032 class FXApp;
00033 class FXWindow;
00034 class FXIcon;
00035 class FXBitmap;
00036 class FXCursor;
00037 class FXRootWindow;
00038 class FXMainWindow;
00039 class FXPopup;
00040 class FXFont;
00041 class FXDC;
00042 class FXDCWindow;
00043 class FXVisual;
00044 class FXGLVisual;
00045 class FXGLContext;
00046 class FXTranslator;
00047 class FXComposeContext;
00048 
00049 // Opaque FOX objects
00050 struct FXTimer;
00051 struct FXChore;
00052 struct FXSignal;
00053 struct FXRepaint;
00054 struct FXInput;
00055 struct FXHandles;
00056 struct FXInvocation;
00057 
00058 
00059 
00061 enum FXInputMode {
00062   INPUT_NONE   = 0,                 
00063   INPUT_READ   = 1,                 
00064   INPUT_WRITE  = 2,                 
00065   INPUT_EXCEPT = 4                  
00066   };
00067 
00068 
00070 enum FXModality {
00071   MODAL_FOR_NONE,                 
00072   MODAL_FOR_WINDOW,               
00073   MODAL_FOR_POPUP                 
00074   };
00075 
00076 
00078 enum FXDefaultCursor {
00079   DEF_ARROW_CURSOR,                     
00080   DEF_RARROW_CURSOR,                    
00081   DEF_TEXT_CURSOR,                      
00082   DEF_HSPLIT_CURSOR,                    
00083   DEF_VSPLIT_CURSOR,                    
00084   DEF_XSPLIT_CURSOR,                    
00085   DEF_SWATCH_CURSOR,                    
00086   DEF_MOVE_CURSOR,                      
00087   DEF_DRAGH_CURSOR,                     
00088   DEF_DRAGV_CURSOR,                     
00089   DEF_DRAGTL_CURSOR,                    
00090   DEF_DRAGBR_CURSOR=DEF_DRAGTL_CURSOR,  
00091   DEF_DRAGTR_CURSOR,                    
00092   DEF_DRAGBL_CURSOR=DEF_DRAGTR_CURSOR,  
00093   DEF_DNDSTOP_CURSOR,                   
00094   DEF_DNDASK_CURSOR,                    
00095   DEF_DNDCOPY_CURSOR,                   
00096   DEF_DNDMOVE_CURSOR,                   
00097   DEF_DNDLINK_CURSOR,                   
00098   DEF_CROSSHAIR_CURSOR,                 
00099   DEF_CORNERNE_CURSOR,                  
00100   DEF_CORNERNW_CURSOR,                  
00101   DEF_CORNERSE_CURSOR,                  
00102   DEF_CORNERSW_CURSOR,                  
00103   DEF_HELP_CURSOR,                      
00104   DEF_HAND_CURSOR,                      
00105   DEF_ROTATE_CURSOR,                    
00106   DEF_BLANK_CURSOR,                     
00107   DEF_WAIT_CURSOR                       
00108   };
00109 
00110 
00134 class FXAPI FXApp : public FXObject {
00135   FXDECLARE(FXApp)
00136 
00137   // We've got many friends
00138   friend class FXId;
00139   friend class FXBitmap;
00140   friend class FXImage;
00141   friend class FXIcon;
00142   friend class FXCursor;
00143   friend class FXDrawable;
00144   friend class FXWindow;
00145   friend class FXShell;
00146   friend class FXRootWindow;
00147   friend class FXTopWindow;
00148   friend class FXMainWindow;
00149   friend class FXPopup;
00150   friend class FXFont;
00151   friend class FXVisual;
00152   friend class FXGLVisual;
00153   friend class FXGLContext;
00154   friend class FXDC;
00155   friend class FXDCWindow;
00156   friend class FXDragCorner;
00157   friend class FXDockHandler;
00158   friend class FXComposeContext;
00159 
00160 private:
00161 
00162   // Platform independent private data
00163   void            *display;             // Display we're talking to
00164   FXHash           hash;                // Window handle hash table
00165   FXRegistry       registry;            // Application setting registry
00166   FXWindow        *activeWindow;        // Active toplevel window
00167   FXWindow        *cursorWindow;        // Window under the cursor
00168   FXWindow        *mouseGrabWindow;     // Window which grabbed the mouse
00169   FXWindow        *keyboardGrabWindow;  // Window which grabbed the keyboard
00170   FXWindow        *keyWindow;           // Window in which keyboard key was pressed
00171   FXWindow        *selectionWindow;     // Selection window
00172   FXWindow        *clipboardWindow;     // Clipboard window
00173   FXWindow        *dropWindow;          // Drop target window
00174   FXWindow        *dragWindow;          // Drag source window
00175   FXWindow        *refresher;           // GUI refresher pointer
00176   FXWindow        *refresherstop;       // GUI refresher end pointer
00177   FXPopup         *popupWindow;         // Current popup window
00178   FXRootWindow    *root;                // Root window
00179   FXVisual        *monoVisual;          // Monochrome visual
00180   FXVisual        *defaultVisual;       // Default [color] visual
00181   FXTimer         *timers;              // List of timers, sorted by time
00182   FXChore         *chores;              // List of chores
00183   FXRepaint       *repaints;            // Unhandled repaint rectangles
00184   FXTimer         *timerrecs;           // List of recycled timer records
00185   FXChore         *chorerecs;           // List of recycled chore records
00186   FXRepaint       *repaintrecs;         // List of recycled repaint records
00187   FXInvocation    *invocation;          // Modal loop invocation
00188   FXSignal        *signals;             // Array of signal records
00189   FXint            signalreceived;      // Latest signal received
00190   FXFont          *normalFont;          // Normal font
00191   FXFont          *stockFont;           // Stock font
00192   FXMutex          appMutex;            // Application wide mutex
00193   FXEvent          event;               // Event
00194   FXuint           stickyMods;          // Sticky modifier state
00195   FXInput         *inputs;              // Input file descriptors being watched
00196   FXint            ninputs;             // Number of inputs
00197   FXHandles       *handles;             // Input handles
00198   FXint            maxhandle;           // Maximum handle number
00199   FXuchar         *ddeData;             // DDE array
00200   FXuint           ddeSize;             // DDE array size
00201   FXuint           maxcolors;           // Maximum number of colors to allocate
00202   FXTime           typingSpeed;         // Typing speed
00203   FXTime           clickSpeed;          // Double click speed
00204   FXTime           scrollSpeed;         // Scroll speed
00205   FXTime           scrollDelay;         // Scroll delay
00206   FXTime           blinkSpeed;          // Cursor blink speed
00207   FXTime           animSpeed;           // Animation speed
00208   FXTime           menuPause;           // Menu popup delay
00209   FXTime           toolTipPause;        // Tooltip popup delay
00210   FXTime           toolTipTime;         // Tooltip display time
00211   FXTime           autoHideDelay;       // Cursor autohide delay time
00212   FXint            dragDelta;           // Minimum distance considered a move
00213   FXint            wheelLines;          // Scroll by this many lines
00214   FXint            scrollBarSize;       // Scrollbar size
00215   FXColor          borderColor;         // Border color
00216   FXColor          baseColor;           // Background color of GUI controls
00217   FXColor          hiliteColor;         // Highlight color of GUI controls
00218   FXColor          shadowColor;         // Shadow color of GUI controls
00219   FXColor          backColor;           // Background color
00220   FXColor          foreColor;           // Foreground color
00221   FXColor          selforeColor;        // Select foreground color
00222   FXColor          selbackColor;        // Select background color
00223   FXColor          tipforeColor;        // Tooltip foreground color
00224   FXColor          tipbackColor;        // Tooltip background color
00225   FXColor          selMenuTextColor;    // Select foreground color in menus
00226   FXColor          selMenuBackColor;    // Select background color in menus
00227   FXCursor        *waitCursor;          // Current wait cursor
00228   FXuint           waitCount;           // Number of times wait cursor was called
00229   FXuint           windowCount;         // Number of windows
00230   FXCursor        *cursor[DEF_WAIT_CURSOR+1];
00231   FXTranslator    *translator;          // Message translator
00232   FXint                appArgc;         // Argument count
00233   const FXchar *const *appArgv;         // Argument vector
00234   const FXchar    *inputmethod;         // Input method name
00235   const FXchar    *inputstyle;          // Input method style
00236   FXbool           initialized;         // Has been initialized
00237 
00238 private:
00239   static FXApp    *app;                 // Application pointer
00240 
00241   // Platform dependent private stuff
00242 #ifdef WIN32
00243 
00244   FXushort         ddeTargets;          // DDE targets atom
00245   FXushort         ddeAtom;             // DDE Exchange Atom
00246   FXDragType       ddeDelete;           // DDE Delete Target Atom
00247   FXDragType      *ddeTypeList;         // DDE drop type list
00248   FXuint           ddeNumTypes;         // DDE number of drop types
00249   FXDragAction     ddeAction;           // DDE action
00250   FXDragAction     ansAction;           // Reply action
00251   FXDragType      *xselTypeList;        // Selection type list
00252   FXuint           xselNumTypes;        // Selection number of types on list
00253   void*            xdndTypes;           // Handle to file mapping object for types list
00254   FXushort         xdndAware;           // XDND awareness atom
00255   FXID             xdndSource;          // XDND drag source window
00256   FXID             xdndTarget;          // XDND drop target window
00257   FXbool           xdndStatusPending;   // XDND waiting for status feedback
00258   FXbool           xdndFinishPending;   // XDND waiting for drop-confirmation
00259   FXbool           xdndStatusReceived;  // XDND received at least one status
00260   FXbool           xdndFinishSent;      // XDND finish sent
00261   FXRectangle      xdndRect;            // XDND rectangle bounding target
00262   FXID             stipples[17];        // Standard stipple bitmaps
00263 
00264 #else
00265 
00266 private:
00267   FXID             wmDeleteWindow;      // Catch delete window
00268   FXID             wmSaveYourself;      // Catch shutdown
00269   FXID             wmQuitApp;           // Catch quit application
00270   FXID             wmProtocols;         // Window manager protocols
00271   FXID             wmMotifHints;        // Motif hints
00272   FXID             wmTakeFocus;         // Focus explicitly set by app
00273   FXID             wmClientMachine;     // Client machine
00274   FXID             wmState;             // Window state
00275   FXID             wmNetState;          // Extended Window Manager window state
00276   FXID             wmNetIconName;       // Extended Window Manager icon name
00277   FXID             wmNetWindowName;     // Extended Window Manager window name
00278   FXID             wmNetSupported;      // Extended Window Manager states list
00279   FXID             wmNetHidden;         // Extended Window Manager hidden
00280   FXID             wmNetShaded;         // Extended Window Manager shaded
00281   FXID             wmNetHMaximized;     // Extended Window Manager horizontally maximized
00282   FXID             wmNetVMaximized;     // Extended Window Manager vertically maximized
00283   FXID             wmNetFullScreen;     // Extended Window Manager full screen
00284   FXID             wmNetBelowOthers;    // Extended Window Manager below others
00285   FXID             wmNetAboveOthers;    // Extended Window Manager above others
00286   FXID             wmNetNeedAttention;  // Extended Window Manager need attention
00287   FXID             wmNetMoveResize;     // Extended Window Manager drag corner
00288   FXID             wmNetRestack;        // Extended Window Manager change stacking order
00289   FXID             wmNetPing;           // Extended Window Manager ping
00290   FXID             wmNetProcessId;      // Extended Window Manager process id
00291   FXID             wmNetWindowType;     // Extended Window Manager window type
00292   FXID             wmWindowTypes[14];   // Window types
00293   FXID             wmWindowRole;        // Window Role
00294   FXID             wmClientLeader;      // Client leader
00295   FXID             wmClientId;          // Client id
00296   FXID             embedAtom;           // XEMBED support
00297   FXID             embedInfoAtom;       // XEMBED info support
00298   FXID             timestampAtom;       // Server time
00299   FXID             ddeTargets;          // DDE targets atom
00300   FXID             ddeAtom;             // DDE exchange atom
00301   FXID             ddeDelete;           // DDE delete target atom
00302   FXID             ddeIncr;             // DDE incremental data exchange atom
00303   FXDragType      *ddeTypeList;         // DDE drop type list
00304   FXuint           ddeNumTypes;         // DDE number of drop types
00305   FXDragAction     ddeAction;           // DDE action
00306   FXDragAction     ansAction;           // Reply action
00307   FXID             xcbSelection;        // Clipboard selection
00308   FXDragType      *xcbTypeList;         // Clipboard type list
00309   FXuint           xcbNumTypes;         // Clipboard number of types on list
00310   FXDragType      *xselTypeList;        // Selection type list
00311   FXuint           xselNumTypes;        // Selection number of types on list
00312   FXDragType      *xdndTypeList;        // XDND type list
00313   FXuint           xdndNumTypes;        // XDND number of types
00314   FXID             xdndProxy;           // XDND proxy atom
00315   FXID             xdndAware;           // XDND awareness atom
00316   FXID             xdndEnter;           // XDND enter window message
00317   FXID             xdndLeave;           // XDND leave window message
00318   FXID             xdndPosition;        // XDND position update message
00319   FXID             xdndStatus;          // XDND status feedback message
00320   FXID             xdndDrop;            // XDND drop message
00321   FXID             xdndFinished;        // XDND finished message
00322   FXID             xdndSelection;       // XDND selection atom
00323   FXID             xdndTypes;           // XDND type list atom
00324   FXID             xdndActions;         // XDND action list atom
00325   FXID             xdndActionList[6];   // XDND actions
00326   FXID             xdndSource;          // XDND drag source window
00327   FXID             xdndTarget;          // XDND drop target window
00328   FXID             xdndProxyTarget;     // XDND window to set messages to
00329   FXbool           xdndStatusPending;   // XDND waiting for status feedback
00330   FXbool           xdndStatusReceived;  // XDND received at least one status
00331   FXbool           xdndWantUpdates;     // XDND target wants new positions while in rect
00332   FXbool           xdndFinishSent;      // XDND finish sent
00333   FXRectangle      xdndRect;            // XDND rectangle bounding target
00334   FXint            xrrScreenChange;     // Xrandr ScreenChange event
00335   FXint            xfxFixesSelection;   // Xfixes selection event
00336   FXint            xInputOpcode;        // XInput2 opcode
00337   FXint            xsbDevice;           // Space ball input device id
00338   FXID             stipples[23];        // Standard stipple patterns
00339   void            *xim;                 // Input method
00340   FXbool           shmi;                // Use XSHM Image possible
00341   FXbool           shmp;                // Use XSHM Pixmap possible
00342   FXbool           xrender;             // XRender available
00343   FXbool           synchronize;         // Synchronized
00344 
00345 #endif
00346 
00347 private:
00348 
00349   // Internal helper functions
00350   FXApp(const FXApp&);
00351   FXApp &operator=(const FXApp&);
00352   static void signalhandler(int sig);
00353   static void immediatesignalhandler(int sig);
00354   void leaveWindow(FXWindow *window,FXWindow *ancestor);
00355   void enterWindow(FXWindow *window,FXWindow *ancestor);
00356   void selectionSetData(const FXWindow* window,FXDragType type,FXuchar* data,FXuint size);
00357   void selectionGetData(const FXWindow* window,FXDragType type,FXuchar*& data,FXuint& size);
00358   void selectionGetTypes(const FXWindow* window,FXDragType*& types,FXuint& numtypes);
00359   void clipboardSetData(const FXWindow* window,FXDragType type,FXuchar* data,FXuint size);
00360   void clipboardGetData(const FXWindow* window,FXDragType type,FXuchar*& data,FXuint& size);
00361   void clipboardGetTypes(const FXWindow* window,FXDragType*& types,FXuint& numtypes);
00362   void dragdropSetData(const FXWindow* window,FXDragType type,FXuchar* data,FXuint size);
00363   void dragdropGetData(const FXWindow* window,FXDragType type,FXuchar*& data,FXuint& size);
00364   void dragdropGetTypes(const FXWindow* window,FXDragType*& types,FXuint& numtypes);
00365   void openInputDevices();
00366   void closeInputDevices();
00367 #ifdef WIN32
00368   static long CALLBACK wndproc(FXID hwnd,unsigned int iMsg,unsigned int wParam,long lParam);
00369 protected:
00370   virtual long dispatchEvent(FXID hwnd,unsigned int iMsg,unsigned int wParam,long lParam);
00371 #else
00372   void addRepaint(FXID win,FXint x,FXint y,FXint w,FXint h,FXbool synth=false);
00373   void removeRepaints(FXID win,FXint x,FXint y,FXint w,FXint h);
00374   void scrollRepaints(FXID win,FXint dx,FXint dy);
00375   static void imcreatecallback(void*,FXApp*,void*);
00376   static void imdestroycallback(void*,FXApp*,void*);
00377 #endif
00378 
00379 protected:
00380 
00382   virtual FXbool getNextEvent(FXRawEvent& ev,FXTime blocking=forever);
00383 
00385   virtual FXbool dispatchEvent(FXRawEvent& ev);
00386 
00387 public:
00388   long onCmdQuit(FXObject*,FXSelector,void*);
00389   long onCmdDump(FXObject*,FXSelector,void*);
00390   long onCmdHover(FXObject*,FXSelector,void*);
00391 
00392 public:
00393 
00395   enum {
00396     ID_QUIT=1,    
00397     ID_DUMP,      
00398     ID_HOVER,
00399     ID_LAST
00400     };
00401 
00402 public:
00403 
00405   static const FXuchar copyright[];
00406 
00407 public:
00408 
00414   FXApp(const FXString& name="Application",const FXString& vendor=FXString::null);
00415 
00417   void setAppName(const FXString& name);
00418 
00420   const FXString& getAppName() const;
00421 
00423   void setVendorName(const FXString& name);
00424 
00426   const FXString& getVendorName() const;
00427 
00429   FXbool hasInputMethod() const;
00430 
00432   void setDefaultVisual(FXVisual* vis);
00433 
00435   FXVisual* getDefaultVisual() const { return defaultVisual; }
00436 
00438   FXVisual* getMonoVisual() const { return monoVisual; }
00439 
00441   void setRootWindow(FXRootWindow* rt);
00442 
00444   FXRootWindow* getRootWindow() const { return root; }
00445 
00447   FXWindow *getFocusWindow() const;
00448 
00450   FXWindow *getCursorWindow() const { return cursorWindow; }
00451 
00453   FXWindow *getActiveWindow() const { return activeWindow; }
00454 
00456   FXPopup* getPopupWindow() const { return popupWindow; }
00457 
00459   FXWindow* getSelectionWindow() const { return selectionWindow; }
00460 
00462   FXWindow* getClipboardWindow() const { return clipboardWindow; }
00463 
00465   FXWindow* getDragWindow() const { return dragWindow; }
00466 
00468   FXWindow* findWindowWithId(FXID xid) const;
00469 
00471   FXWindow* findWindowAt(FXint rx,FXint ry,FXID window=0) const;
00472 
00474   void setNormalFont(FXFont* font);
00475 
00477   FXFont* getNormalFont() const { return normalFont; }
00478 
00480   void beginWaitCursor();
00481 
00483   void endWaitCursor();
00484 
00486   void setWaitCursor(FXCursor *cur);
00487 
00489   FXCursor* getWaitCursor() const { return waitCursor; }
00490 
00492   void setDefaultCursor(FXDefaultCursor which,FXCursor* cur);
00493 
00495   FXCursor* getDefaultCursor(FXDefaultCursor which) const { return cursor[which]; }
00496 
00498   FXDragType registerDragType(const FXString& name) const;
00499 
00501   FXString getDragTypeName(FXDragType type) const;
00502 
00507   void setTranslator(FXTranslator* trans);
00508 
00512   FXTranslator* getTranslator() const { return translator; }
00513 
00515   void* getDisplay() const { return display; }
00516 
00518   virtual FXbool openDisplay(const FXchar* dpy=NULL);
00519 
00521   virtual FXbool closeDisplay();
00522 
00533   void addTimeout(FXObject* tgt,FXSelector sel,FXTime ns=1000000000,void* ptr=NULL);
00534 
00543   void addDeadline(FXObject* tgt,FXSelector sel,FXTime due=forever,void* ptr=NULL);
00544 
00549   void removeTimeout(FXObject* tgt,FXSelector sel=0);
00550 
00555   FXbool hasTimeout(FXObject *tgt,FXSelector sel=0) const;
00556 
00564   FXTime remainingTimeout(FXObject *tgt,FXSelector sel=0);
00565 
00573   void addChore(FXObject* tgt,FXSelector sel,void *ptr=NULL);
00574 
00579   void removeChore(FXObject* tgt,FXSelector sel=0);
00580 
00585   FXbool hasChore(FXObject *tgt,FXSelector sel=0) const;
00586 
00594   void addSignal(FXint sig,FXObject* tgt,FXSelector sel,FXbool immediate=false,FXuint flags=0);
00595 
00597   void removeSignal(FXint sig);
00598 
00609   FXbool addInput(FXObject *tgt,FXSelector sel,FXInputHandle fd,FXuint mode=INPUT_READ,void* ptr=NULL);
00610 
00617   FXbool removeInput(FXInputHandle fd,FXuint mode=INPUT_READ);
00618 
00620   FXbool getKeyState(FXuint keysym) const;
00621 
00623   FXbool peekEvent();
00624 
00626   FXbool runOneEvent(FXTime blocking=forever);
00627 
00632   FXint run();
00633 
00638   FXint runUntil(FXuint& condition);
00639 
00645   FXint runWhileEvents(FXTime blocking=0);
00646 
00654   FXint runModalWhileEvents(FXWindow* window=NULL,FXTime blocking=0);
00655 
00660   FXint runModal();
00661 
00667   FXint runModalFor(FXWindow* window);
00668 
00674   FXint runModalWhileShown(FXWindow* window);
00675 
00680   FXint runPopup(FXWindow* window);
00681 
00683   FXbool isModal(FXWindow* window) const;
00684 
00686   FXWindow* getModalWindow() const;
00687 
00689   FXModality getModality() const;
00690 
00696   void stop(FXint value=0);
00697 
00702   void stopModal(FXWindow* window,FXint value=0);
00703 
00707   void stopModal(FXint value=0);
00708 
00713   void refresh();
00714 
00718   void forceRefresh();
00719 
00724   void flush(FXbool sync=false);
00725 
00730   void repaint();
00731 
00733   FXint getArgc() const { return appArgc; }
00734 
00736   const FXchar *const *getArgv() const { return appArgv; }
00737 
00739   FXbool isInitialized() const { return initialized; }
00740 
00746   virtual void init(int& argc,char** argv,FXbool connect=true);
00747 
00752   virtual void exit(FXint code=0);
00753 
00760   FXRegistry& reg(){ return registry; }
00761 
00774   FXMutex& mutex(){ return appMutex; }
00775 
00777   void beep();
00778 
00780   FXTime getTypingSpeed() const { return typingSpeed; }
00781   FXTime getClickSpeed() const { return clickSpeed; }
00782   FXTime getScrollSpeed() const { return scrollSpeed; }
00783   FXTime getScrollDelay() const { return scrollDelay; }
00784   FXTime getBlinkSpeed() const { return blinkSpeed; }
00785   FXTime getAnimSpeed() const { return animSpeed; }
00786   FXTime getMenuPause() const { return menuPause; }
00787   FXTime getToolTipPause() const { return toolTipPause; }
00788   FXTime getToolTipTime() const { return toolTipTime; }
00789   FXTime getAutoHideDelay() const { return autoHideDelay; }
00790 
00792   void setTypingSpeed(FXTime speed);
00793   void setClickSpeed(FXTime speed);
00794   void setScrollSpeed(FXTime speed);
00795   void setScrollDelay(FXTime delay);
00796   void setBlinkSpeed(FXTime speed);
00797   void setAnimSpeed(FXTime speed);
00798   void setMenuPause(FXTime pause);
00799   void setToolTipPause(FXTime pause);
00800   void setToolTipTime(FXTime time);
00801   void setAutoHideDelay(FXTime time);
00802 
00804   void setDragDelta(FXint delta);
00805   FXint getDragDelta() const { return dragDelta; }
00806 
00808   void setWheelLines(FXint lines);
00809   FXint getWheelLines() const { return wheelLines; }
00810 
00812   void setScrollBarSize(FXint size);
00813   FXint getScrollBarSize() const { return scrollBarSize; }
00814 
00816   FXColor getBorderColor() const { return borderColor; }
00817   FXColor getBaseColor() const { return baseColor; }
00818   FXColor getHiliteColor() const { return hiliteColor; }
00819   FXColor getShadowColor() const { return shadowColor; }
00820   FXColor getBackColor() const { return backColor; }
00821   FXColor getForeColor() const { return foreColor; }
00822   FXColor getSelforeColor() const { return selforeColor; }
00823   FXColor getSelbackColor() const { return selbackColor; }
00824   FXColor getTipforeColor() const { return tipforeColor; }
00825   FXColor getTipbackColor() const { return tipbackColor; }
00826   FXColor getSelMenuTextColor() const { return selMenuTextColor; }
00827   FXColor getSelMenuBackColor() const { return selMenuBackColor; }
00828 
00830   void setBorderColor(FXColor color);
00831   void setBaseColor(FXColor color);
00832   void setHiliteColor(FXColor color);
00833   void setShadowColor(FXColor color);
00834   void setBackColor(FXColor color);
00835   void setForeColor(FXColor color);
00836   void setSelforeColor(FXColor color);
00837   void setSelbackColor(FXColor color);
00838   void setTipforeColor(FXColor color);
00839   void setTipbackColor(FXColor color);
00840   void setSelMenuTextColor(FXColor color);
00841   void setSelMenuBackColor(FXColor color);
00842 
00844   FXuint getWindowCount() const { return windowCount; }
00845 
00847   virtual void create();
00848 
00850   virtual void destroy();
00851 
00853   virtual void detach();
00854 
00856   virtual void save(FXStream& store) const;
00857 
00859   virtual void load(FXStream& store);
00860 
00862   void dumpWidgets() const;
00863 
00865   static inline FXApp* instance(){ return app; }
00866 
00868   virtual ~FXApp();
00869   };
00870 
00871 }
00872 
00873 #endif

Copyright © 1997-2011 Jeroen van der Zijp