13 #include "win_theme.h" 14 #include "win_border.h" 17 win_border::win_border()
23 set_trans_border(
false);
25 set_visible_border(
false );
27 set_brightness_border(
false );
38 set_trans_border(
false);
40 set_visible_border(
false );
42 set_brightness_border(
false );
45 win_border::win_border(
char * rep,
const char * size)
51 set_visible_border(
false );
53 set_trans_border(
false);
55 set_brightness_border(
false );
57 win_border::load(rep,size);
69 set_visible_border(
false );
71 set_trans_border(
false);
73 set_brightness_border(
false );
80 win_border::~win_border()
110 void win_border::init()
112 h_border_template_=NULL;
113 v_border_template_=NULL;
114 for(
u_int8 i=0;i<NB_BORDER_IMAGE;i++)
115 border_[i]=border_brightness_[i]=NULL;
122 h_border_template_=
new image();
123 *h_border_template_=*(wb.h_border_template_);
124 v_border_template_=
new image();
125 *v_border_template_=*(wb.v_border_template_);
127 for(
u_int8 i=0;i<NB_BORDER_IMAGE-2;i++)
129 border_[i]=
new image();
130 border_brightness_[i]=
new image();
131 *(border_[i])=*(wb.border_[i]);
132 *(border_brightness_[i])=*(wb.border_brightness_[i]);
134 border_brightness_[i]->
set_mask(
true);
137 for(
u_int8 i=NB_BORDER_IMAGE-2;i<NB_BORDER_IMAGE;i++)
139 border_[i]=
new image();
140 border_brightness_[i]=
new image();
142 border_brightness_[i]->
set_mask(
true);
148 void win_border::destroy()
150 if(h_border_template_)
delete h_border_template_;
151 if(v_border_template_)
delete v_border_template_;
153 for(
u_int8 i = 0; i< NB_BORDER_IMAGE; i++)
154 {
delete border_[i];
delete border_brightness_[i];}
159 void win_border::load(
char * rep,
const char *size)
163 char path[255];
char tmp[255];
164 strcpy(path,WIN_DIRECTORY);
165 strcat(path,WIN_BORDER_DIRECTORY);
169 h_border_template_=
new image();
171 strcat(tmp,WIN_H_BORDER_TEMPLATE_FILE);
175 v_border_template_=
new image();
177 strcat(tmp,WIN_V_BORDER_TEMPLATE_FILE);
181 border_[0]=
new image();
183 strcat(tmp,WIN_CORNER_TOP_LEFT_FILE);
185 border_brightness_[0]=
new image();
186 border_brightness_[0]->
brightness(*(border_[0]),WIN_BRIGHTNESS_LEVEL);
188 border_brightness_[0]->
set_mask(
true);
190 border_[1]=
new image();
192 strcat(tmp,WIN_CORNER_TOP_RIGHT_FILE);
194 border_brightness_[1]=
new image();
195 border_brightness_[1]->
brightness(*(border_[1]),WIN_BRIGHTNESS_LEVEL);
197 border_brightness_[1]->
set_mask(
true);
200 border_[2]=
new image();
202 strcat(tmp,WIN_CORNER_BOTTOM_LEFT_FILE);
204 border_brightness_[2]=
new image();
205 border_brightness_[2]->
brightness(*(border_[2]),WIN_BRIGHTNESS_LEVEL);
207 border_brightness_[2]->
set_mask(
true);
210 border_[3]=
new image();
212 strcat(tmp,WIN_CORNER_BOTTOM_RIGHT_FILE);
214 border_brightness_[3]=
new image();
215 border_brightness_[3]->
brightness(*(border_[3]),WIN_BRIGHTNESS_LEVEL);
217 border_brightness_[3]->
set_mask(
true);
219 for(
u_int8 i=NB_BORDER_IMAGE-2;i<NB_BORDER_IMAGE;i++)
221 border_[i]=
new image();
222 border_brightness_[i]=
new image();
224 border_brightness_[i]->
set_mask(
true);
229 void win_border::update()
231 if(!h_border_template_ || !v_border_template_ || !wb_)
return;
234 border_[4]->
tile(*v_border_template_);
235 border_brightness_[4]->
brightness(*(border_[4]),WIN_BRIGHTNESS_LEVEL);
238 border_[5]->
tile(*h_border_template_);
239 border_brightness_[5]->
brightness(*(border_[5]),WIN_BRIGHTNESS_LEVEL);
242 u_int16 win_border::height_border()
244 if(h_border_template_)
return h_border_template_->
height();
248 u_int16 win_border::length_border()
250 if(v_border_template_)
return v_border_template_->
length();
255 void win_border::set_trans_border(
bool b)
257 if(!h_border_template_)
return;
259 for(
u_int8 i=0; i<NB_BORDER_IMAGE;i++)
265 for(
u_int8 i=0; i<NB_BORDER_IMAGE;i++)
275 if(!h_border_template_ || !visible_border_ || !wb_)
return;
288 border_draw_[0]->
draw(wb_->
real_x() - (border_draw_[0]->
length()>>1) - (length_border()>>1) - xodd,
289 wb_->
real_y() - (border_draw_[0]->
height()>>1) - (height_border()>>1) - yodd, da);
291 border_draw_[1]->
draw(wb_->
real_x() + wb_->
length() - (border_draw_[0]->
length()>>1) + (length_border()>>1),
292 wb_->
real_y() - (border_draw_[0]->
height()>>1) - (height_border()>>1) - yodd, da);
294 border_draw_[2]->
draw(wb_->
real_x() - (border_draw_[0]->
length()>>1) - (length_border()>>1) - xodd ,
295 wb_->
real_y() + wb_->
height() - (border_draw_[0]->
height()>>1) + (height_border()>>1), da);
297 border_draw_[3]->
draw(wb_->
real_x() + wb_->
length() - (border_draw_[0]->
length()>>1) + (length_border()>>1),
298 wb_->
real_y() + wb_->
height() - (border_draw_[0]->
height()>>1) + (height_border()>>1), da);
302 void win_border::set_brightness_border(
bool b)
309 void win_border::refresh()
311 border_draw_ = (brightness_) ? border_brightness_ : border_;
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.
#define u_int8
8 bits long unsigned integer
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.
void set_alpha(u_int8 a)
Sets the alpha value of the surface.
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.
Common properties for each win_base's object.
void set_mask(bool m)
Sets the mask parameter of the surface.
bool update()
Update process.