AxWin2 - Huge changes, getting to the working point
[tpg/acess2.git] / Usermode / Applications / axwin2_src / WM / wm.h
index 4c25c92..8de9e20 100644 (file)
@@ -1,15 +1,24 @@
-
+/*
+ * Acess2 Window Manager (AxWin2)
+ */
 #ifndef _WM_H_
 #define _WM_H_
 
-typedef struct sElement
+#include <axwin2/axwin.h>
+#include "common.h"
+
+typedef struct sAxWin_Element  tElement;
+typedef struct sTab    tTab;
+typedef struct sApplication    tApplication;
+
+struct sAxWin_Element
 {
         int    Type;
        
-       struct sElement *Parent;
-       struct sElement *FirstChild;
-       struct sElement *LastChild;
-       struct sElement *NextSibling;
+       tElement        *Parent;
+       tElement        *FirstChild;
+       tElement        *LastChild;
+       tElement        *NextSibling;
        
        short   PaddingL, PaddingR;
        short   PaddingT, PaddingB;
@@ -31,111 +40,36 @@ typedef struct sElement
        // -- Render Cache
        short   CachedX, CachedY;
        short   CachedW, CachedH;
-}      tElement;
+       
+       char    DebugName[];
+};
 
-typedef struct sTab
+struct sTab
 {
         int    Type;   // Should be zero, allows a tab to be the parent of an element
        
-       struct sElement *Parent;
-       struct sElement *FirstChild;
-       struct sElement *LastChild;
+       tElement        *Parent;
+       tElement        *FirstChild;
+       tElement        *LastChild;
+       tTab    *NextTab;
        
        char    *Name;
        
        tElement        *RootElement;
-}      tTab;
+};
 
-typedef struct sApplication
+struct sApplication
 {
-       pid_t   PID;
+       tApplication    *Next;  
+
+       void    *Ident;
+       tMessages_Handle_Callback       *SendMessage;
        
         int    nTabs;
        tTab    *Tabs;
+       tTab    *CurrentTab;
        
        char    Name[];
-}      tApplication;
-
-// === CONSTANTS ===
-enum eElementFlags
-{
-       /**
-        * \brief Rendered
-        * 
-        * If set, the element will be ignored in calculating sizes and
-        * rendering.
-        */
-       ELEFLAG_NORENDER    = 0x001,
-       /**
-        * \brief Element visibility
-        * 
-        * If set, the element is not drawn.
-        */
-       ELEFLAG_INVISIBLE   = 0x002,
-       
-       /**
-        * \brief Position an element absulutely
-        */
-       ELEFLAG_ABSOLUTEPOS = 0x004,
-       
-       /**
-        * \brief Fixed size element
-        */
-       ELEFLAG_FIXEDSIZE   = 0x008,
-       
-       /**
-        * \brief Element "orientation"
-        */
-       ELEFLAG_VERTICAL    = 0x010,//  ELEFLAG_HORIZONTAL  = 0x000,
-       /**
-        * \brief Action for text that overflows
-        */
-       ELEFLAG_WRAP        = 0x020,//  ELEFLAG_NOWRAP      = 0x000,
-       /**
-        * \brief Cross size action
-        * 
-        * If this flag is set, the element will only be as large (across
-        * its parent) as is needed to encase the contents of the element.
-        * Otherwise, the element will expand to fill all avaliable space.
-        */
-       ELEFLAG_NOEXPAND    = 0x040,    //      ELEFLAG_EXPAND      = 0x000
-       
-       /**
-        * \brief Center alignment
-        */
-       ELEFLAG_ALIGN_CENTER= 0x080,
-       /**
-        * \brief Right/Bottom alignment
-        */
-       ELEFLAG_ALIGN_END = 0x100
-};
-
-/**
- */
-enum eElementTypes
-{
-       ELETYPE_NONE,
-       
-       ELETYPE_BOX,    //!< Content box
-       ELETYPE_TABBAR, //!< Tab Bar
-       ELETYPE_TOOLBAR,        //!< Tool Bar
-       
-       ELETYPE_BUTTON, //!< Push Button
-       ELETYPE_TEXT,   //!< Text
-       ELETYPE_IMAGE,  //!< Image
-       
-       ELETYPE_SPACER, //!< Visual Spacer
-       
-       MAX_ELETYPES    = 0x100
 };
 
-// === FUNCTIONS ===
-/**
- * \brief Create a new element as a child of \a Parent
- */
-extern tElement        *WM_CreateElement(tElement *Parent, int Type, int Flags);
-extern void    WM_SetFlags(tElement *Element, int Flags);
-extern void    WM_SetSize(tElement *Element, int Size);
-extern void    WM_SetText(tElement *Element, char *Text);
-
 #endif

UCC git Repository :: git.ucc.asn.au