aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/wndmgr/skinwnd.h
blob: e372fb561efd5e5b03b3a3a399ddb0c778fdd8a8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#ifndef __SKINWND_H
#define __SKINWND_H

#include <bfc/common.h>
#include "api.h"
#include <api/script/scriptobj.h>

#define WASABISTDCONTAINER_RESIZABLE_STATUS      "resizable_status"
#define WASABISTDCONTAINER_RESIZABLE_NOSTATUS    "resizable_nostatus"
#define WASABISTDCONTAINER_STATIC                "static"
#define WASABISTDCONTAINER_MODAL                 "modal"

#define SKINWND_ATTACH_LEFT     1
#define SKINWND_ATTACH_TOP      2
#define SKINWND_ATTACH_RIGHT    3
#define SKINWND_ATTACH_BOTTOM   4

class ifc_window;
class GuiObject;

class SkinWnd 
{
  public:
    SkinWnd(GUID svc_or_group_guid, const wchar_t *prefered_container=NULL, int container_flag=0, RECT *animated_rect_source=NULL, int transcient=0, int starthidden=0);
    SkinWnd(const wchar_t *group_id, const wchar_t *prefered_container=NULL, int container_flag=0, RECT *animated_rect_source=NULL, int transcient=0, int starthidden=0);
    virtual ~SkinWnd();
    void destroy(RECT *animated_rect_dest=NULL);
    ifc_window *getWindow() { return wnd; }
    ScriptObject *getContainer();
    ScriptObject *getLayout();
    int runModal(int center=0);
    void endModal(int retcode);
    GuiObject *findObject(const wchar_t *object_id);
    void notifyMinMaxChanged();
    int isNewContainer() { return isnew; }

  private:
    ifc_window *wnd;
    int isnew;
};

#endif