Difference between revisions of "User:Ericb/Salframe.hxx"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Defines macro for the Flags for System Abstraction Layer Frame Position and Size)
 
(13 intermediate revisions by one other user not shown)
Line 1: Line 1:
 +
VCL home page [[user:ericb]]
 +
 
Defines types and styles for the frames
 
Defines types and styles for the frames
 
==Includes==
 
==Includes==
Line 8: Line 10:
 
===Defines macro for the System Abstraction Layer Frame Types ===
 
===Defines macro for the System Abstraction Layer Frame Types ===
  
* TOTOP_RESTOREWHENMIN->0x0001, TOTOP_FOREGROUNDTASK0->x0002, TOTOP_GRABFOCUS->0x0004, TOTOP_GRABFOCUS_ONLY  ->0x0008, ENDEXTTEXTINPUT_COMPLETE->0x0001, ENDEXTTEXTINPUT_CANCEL->0x0002
+
Macros defining frame types.
 +
Naming convention: TOTOP_ followed by Frame type name in the Macro name: (ie TOTOP_RESTOREWHENMIN 0x0001)
  
 +
See vcl/inc/Salframe.hxx for more information
  
===Defines marcro for the System Abstraction Layer Frame Style ===
+
===Defines macros for the System Abstraction Layer Frame Style ===
 +
 
 +
Macros defining styles for the frames
 +
 
 +
*  (DEFAULT->0x00000001)
  
*  DEFAULT->0x00000001, MOVEABLE->0x00000002, SIZEABLE->0x00000004, CLOSEABLE->0x00000008
 
 
 
 
*  no shadow effect on WindowsXP: NOSHADOW->0x00000010
 
*  no shadow effect on WindowsXP: NOSHADOW->0x00000010
 
*  indicate tooltip windows, so they can always be topmost: TOOLTIP->0x00000020
 
*  indicate tooltip windows, so they can always be topmost: TOOLTIP->0x00000020
Line 25: Line 31:
  
  
===Defines macro for the Flags for  System Abstraction Layer Frame Position and Size===
+
===Defines macros for the Flags for  System Abstraction Layer Frame Position and Size===
 
    
 
    
 
* Y->0x0002, WIDTH->0x0004, HEIGHT->0x0008
 
* Y->0x0002, WIDTH->0x0004, HEIGHT->0x0008
Line 54: Line 60:
 
  then checks if gnome or KDE is running and sets icon accordingly  
 
  then checks if gnome or KDE is running and sets icon accordingly  
 
  then plays around with WMH: Window Manager Hints (resize & Co) << to be corrected
 
  then plays around with WMH: Window Manager Hints (resize & Co) << to be corrected
 +
 +
native menu implementation - currently empty
 +
virtual void                    SetMenu( SalMenu *pSalMenu ) = 0;
 +
virtual void                    DrawMenuBar() = 0;
 +
so these two methods are empty
 +
 +
virtual void                SetExtendedFrameStyle( SalExtStyle nExtStyle ) = 0;
 +
Sets Extended Frame Style
 +
no idea how it works
 +
uses rtl and saldata
 +
 +
 +
    virtual void Show( BOOL bVisible, BOOL bNoActivate = FALSE ) = 0;
 +
 +
Before the window is visible, a resize event  must be sent with the correct size
 +
 +
  virtual void Enable( BOOL bEnable ) = 0;
 +
  NYI: enable/disable frame
 +
 +
 +
 +
    // Set ClientSize and Center the Window to the desktop
 +
    // and send/post a resize message
 +
virtual void                SetMinClientSize( long nWidth, long nHeight ) = 0;
 +
 +
Sets minimum Clients Size
 +
 +
virtual void                SetMaxClientSize( long nWidth, long nHeight ) = 0;
 +
Similar to  SetMinClientSize, Sets Maximum Clients Size
 +
 +
virtual void SetPosSize( long nX, long nY, long nWidth, long nHeight, USHORT nFlags ) = 0;
 +
Sets postion and size of window
 +
sarts by getting top left corner
 +
then get width end length
 +
and then sets position
 +
 +
virtual void GetClientSize( long& rWidth, long& rHeight ) = 0;
  
 
-----------------------------------------------
 
-----------------------------------------------
  
 
Work in progress
 
Work in progress

Latest revision as of 11:23, 25 March 2010

VCL home page user:ericb

Defines types and styles for the frames

Includes

To be completed

Macro

Defines macro for the System Abstraction Layer Frame Types

Macros defining frame types. Naming convention: TOTOP_ followed by Frame type name in the Macro name: (ie TOTOP_RESTOREWHENMIN 0x0001)

See vcl/inc/Salframe.hxx for more information

Defines macros for the System Abstraction Layer Frame Style

Macros defining styles for the frames

  • (DEFAULT->0x00000001)
  • no shadow effect on WindowsXP: NOSHADOW->0x00000010
  • indicate tooltip windows, so they can always be topmost: TOOLTIP->0x00000020
  • windows without windowmanager decoration, this typically only applies to floating windows: OWNERDRAWDECORATION->0x00000040
  • dialogs: DIALOG->0x00000080
  • system child window: CHILD->0x10000000
  • floating window: FLOAT->0x20000000
  • toolwindows should be painted with a smaller decoration: TOOLWINDOW->0x40000000
  • the window containing the intro bitmap, aka splashscreen: INTRO->0x80000000


Defines macros for the Flags for System Abstraction Layer Frame Position and Size

  • Y->0x0002, WIDTH->0x0004, HEIGHT->0x0008



Methods

virtual SalGraphics* GetGraphics() = 0;

method acquiring pointer on Graphics

virtual void ReleaseGraphics( SalGraphics* pGraphics ) = 0;

releases graphics
test using DBG_ASSERT(): 
checks if graphic exist and is valid before releasing. If not errors will be sent.

virtual BOOL PostEvent( void* pData ) = 0;

sends event to  X11

virtual void SetTitle( const XubString& rTitle ) = 0;

sets WMN name (WMN = Window Manager's Name)

virtual void SetIcon( USHORT nIcon ) = 0;

sets icon size:
calculates max icon size,
then checks if gnome or KDE is running and sets icon accordingly 
then plays around with WMH: Window Manager Hints (resize & Co) << to be corrected

native menu implementation - currently empty virtual void SetMenu( SalMenu *pSalMenu ) = 0; virtual void DrawMenuBar() = 0; so these two methods are empty

virtual void SetExtendedFrameStyle( SalExtStyle nExtStyle ) = 0; Sets Extended Frame Style no idea how it works uses rtl and saldata


   virtual void				Show( BOOL bVisible, BOOL bNoActivate = FALSE ) = 0;

Before the window is visible, a resize event must be sent with the correct size

 virtual void				Enable( BOOL bEnable ) = 0;
 NYI: enable/disable frame


   // Set ClientSize and Center the Window to the desktop
   // and send/post a resize message

virtual void SetMinClientSize( long nWidth, long nHeight ) = 0;

Sets minimum Clients Size

virtual void SetMaxClientSize( long nWidth, long nHeight ) = 0;

Similar to   SetMinClientSize, Sets Maximum Clients Size

virtual void SetPosSize( long nX, long nY, long nWidth, long nHeight, USHORT nFlags ) = 0;

Sets postion and size of window
sarts by getting top left corner
then get width end length
and then sets position
virtual void				GetClientSize( long& rWidth, long& rHeight ) = 0;

Work in progress

Personal tools