blob: ccef19fa1b31e0f8eb1f749e993a5d9ebbac6fca (
plain)
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
#include "focuswidget.hh"
#include "button.hh"
#include "display.hh"
#include "configuration.hh"
#include "timerqueuemanager.hh"
#include "image.hh"
#include "style.hh"
#include <iostream>
int main(void) {
otk::OBDisplay::initialize(NULL);
otk::Configuration style_conf(False);
otk::OBTimerQueueManager *tm = new otk::OBTimerQueueManager();
const otk::ScreenInfo *s_info =
otk::OBDisplay::screenInfo(DefaultScreen(otk::OBDisplay::display));
otk::BImageControl *ctrl = new otk::BImageControl(tm, s_info, True, 4, 5, 200);
otk::Style *my_style = new otk::Style(ctrl);
style_conf.setFile("/usr/local/share/openbox/styles/artwiz");
style_conf.load();
my_style->load(style_conf);
otk::OtkFocusWidget foo(my_style);
foo.resize(600, 500);
foo.setTexture(my_style->getTitleFocus());
foo.setUnfocusTexture(my_style->getTitleUnfocus());
foo.setBevelWidth(2);
foo.setDirection(otk::OtkWidget::Horizontal);
otk::OtkFocusWidget left(&foo);
otk::OtkFocusWidget right(&foo);
left.setDirection(otk::OtkWidget::Horizontal);
left.setStretchableVert(true);
left.setStretchableHorz(true);
left.setTexture(my_style->getTitleFocus());
left.setUnfocusTexture(my_style->getTitleUnfocus());
right.setDirection(otk::OtkWidget::Vertical);
right.setBevelWidth(10);
right.setStretchableVert(true);
right.setWidth(300);
right.setTexture(my_style->getTitleFocus());
right.setUnfocusTexture(my_style->getTitleUnfocus());
otk::OtkButton iconb(&left);
otk::OtkFocusWidget label(&left);
otk::OtkButton maxb(&left);
otk::OtkButton closeb(&left);
// fixed size
iconb.setText("foo");
iconb.press();
// fix width to 60 and let the height be calculated by its parent
//label.setHeight(20);
label.setStretchableVert(true);
label.setStretchableHorz(true);
label.setTexture(my_style->getLabelFocus());
label.setUnfocusTexture(my_style->getLabelUnfocus());
// fixed size
maxb.setText("bar");
// fixed size
closeb.setText("fuubar");
otk::OtkFocusWidget rblef(&right);
otk::OtkButton rbutt1(&right);
otk::OtkButton rbutt2(&right);
rblef.setStretchableHorz(true);
rblef.setHeight(50);
rblef.setTexture(my_style->getHandleFocus());
rblef.setUnfocusTexture(my_style->getHandleUnfocus());
rbutt1.setText("this is fucking tight");
rbutt2.setText("heh, WOOP");
// will recursively unfocus its children
//foo.unfocus();
foo.update();
foo.show();
while (1) {
if (XPending(otk::OBDisplay::display)) {
XEvent e;
XNextEvent(otk::OBDisplay::display, &e);
if (e.type == Expose) {
foo.expose(e.xexpose);
} else if (e.type == ConfigureNotify) {
foo.configure(e.xconfigure);
}
}
}
delete my_style;
delete tm;
delete ctrl;
otk::OBDisplay::destroy();
return 0;
}
|