13 #include "win_theme.h"
14 #include "win_scrollbar.h"
18 win_scrollbar::win_scrollbar()
24 set_visible_scrollbar(
true);
26 set_trans_scrollbar(
false);
28 set_brightness_scrollbar(
false);
40 set_visible_scrollbar(
true);
42 set_trans_scrollbar(
false);
44 set_brightness_scrollbar(
false);
56 set_visible_scrollbar(
true);
58 set_trans_scrollbar(
false);
60 set_brightness_scrollbar(
false);
68 win_scrollbar::win_scrollbar(
char * rep)
74 set_visible_scrollbar(
true);
76 set_trans_scrollbar(
false);
78 set_brightness_scrollbar(
false);
85 win_scrollbar::~win_scrollbar()
97 void win_scrollbar::set_scrollbar(
win_theme & wt)
99 *
this=*(wt.scrollbar);
103 void win_scrollbar::init()
114 bar_brightness_=NULL;
115 back_brightness_=NULL;
123 bar_top_=
new image();
124 *bar_top_=*(wb.bar_top_);
125 bar_mid_=
new image();
126 *bar_mid_=*(wb.bar_mid_);
127 bar_bot_=
new image();
128 *bar_bot_=*(wb.bar_bot_);
129 bar_flex_=
new image();
130 *bar_flex_=*(wb.bar_flex_);
132 back_top_=
new image();
133 *back_top_=*(wb.back_top_);
134 back_mid_=
new image();
135 *back_mid_=*(wb.back_mid_);
136 back_bot_=
new image();
137 *back_bot_=*(wb.back_bot_);
145 bar_brightness_ =
new image();
146 back_brightness_ =
new image();
158 void win_scrollbar::load(
char * theme)
161 char path[255];
char tmp[255];
162 strcpy(path,WIN_DIRECTORY);
163 strcat(path,WIN_SCROLLBAR_DIRECTORY);
171 bar_brightness_ =
new image();
172 back_brightness_ =
new image();
176 bar_top_=
new image();
178 strcat(tmp,WIN_SCROLLBAR_BAR_TOP);
181 bar_mid_=
new image();
183 strcat(tmp,WIN_SCROLLBAR_BAR_MID);
186 bar_bot_=
new image();
188 strcat(tmp,WIN_SCROLLBAR_BAR_BOT);
191 bar_flex_=
new image();
193 strcat(tmp,WIN_SCROLLBAR_BAR_FLEX);
196 back_top_=
new image();
198 strcat(tmp,WIN_SCROLLBAR_BACK_TOP);
201 back_mid_=
new image();
203 strcat(tmp,WIN_SCROLLBAR_BACK_MID);
206 back_bot_=
new image();
208 strcat(tmp,WIN_SCROLLBAR_BACK_BOT);
212 void win_scrollbar::update_back()
214 if(!wsc_ || !back_)
return;
219 back_->
tile(*back_mid_);
223 back_top_->
draw(0,0,NULL,back_);
229 back_brightness_->
brightness(*back_, WIN_BRIGHTNESS_LEVEL);
233 void win_scrollbar::refresh()
237 bar_draw_=bar_brightness_;
239 back_draw_=back_brightness_;
250 void win_scrollbar::destroy()
252 if(back_bot_)
delete back_bot_;
254 if(back_top_)
delete back_top_;
256 if(back_mid_)
delete back_mid_;
258 if(bar_bot_)
delete bar_bot_;
260 if(bar_mid_)
delete bar_mid_;
262 if(bar_top_)
delete bar_top_;
264 if(bar_flex_)
delete bar_flex_;
266 if(bar_)
delete bar_;
268 if(back_)
delete back_;
270 if(bar_brightness_)
delete bar_brightness_;
272 if(back_brightness_)
delete back_brightness_;
276 void win_scrollbar::update_bar()
278 if(!wsc_ || !bar_)
return;
279 if (!(wsc_->
height() + wsc_->amplitude()))
return;
292 bar_->
tile(*bar_flex_);
295 bar_top_->
draw(0,0,NULL,bar_);
308 bar_top_->
draw(0,0,NULL,bar_);
314 bar_mid_->
draw(0,bar_top_->
height(),NULL,bar_);
316 bar_brightness_->
brightness(*bar_,WIN_BRIGHTNESS_LEVEL);
322 if(!visible_ || !back_draw_ || !bar_draw_)
return;
u_int16 height() const
Returns the height of the drawing_area.
s_int16 real_y() const
Return the vertical position of the win_*.
u_int16 length() const
Returns the length of the drawable.
void resize(u_int16 l, u_int16 h)
Resize this image.
#define u_int16
16 bits long unsigned integer
s_int16 real_x() const
Return the horizontal position of the win_*.
Image manipulation class.
void tile(const surface &src)
Tiles a surface.
u_int16 length() const
Returns the length of the drawing_area.
void draw(s_int16 x, s_int16 y, const drawing_area *da_opt=NULL, surface *target=NULL) const
Draw the surface.
Implements "drawing zones" for drawing operations.
u_int16 height() const
Returns the height of the drawable.
A* pathfinding algorithm implementation class.
void brightness(const surface &src, u_int8 cont, bool proceed_mask=false)
Applies a "brightness" to a surface.
s_int8 load_pnm(string fname)
Loads an image from a file name, in PNM format, without alpha and mask values.
void set_mask(bool m)
Sets the mask parameter of the surface.