From Apache OpenOffice Wiki
< User:Ericb(Redirected from Salframe.hxx)
Jump to: navigation, search

VCL home page user:ericb

Defines types and styles for the frames


To be completed


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


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