@@ -369,7 +369,7 @@ struct gws_window_d *do_create_titlebar(
369369 const int is_maximized = (parent -> state == WINDOW_STATE_MAXIMIZED );
370370
371371// Use parent->border_size (must be set in doCreateWindowFrame before this call)
372- unsigned long b = parent -> border_size ;
372+ unsigned long b = parent -> Border . border_size ;
373373
374374 TitleBarLeft = b ;
375375 TitleBarTop = b ;
@@ -645,6 +645,7 @@ doCreateWindowFrame (
645645 struct gws_window_d * sbWindow ;
646646 int id = -1 ; //usado pra registrar janelas filhas.
647647 int Type = 0 ;
648+
648649// Border size
649650 unsigned long BorderSize = (border_size & 0xFFFF );
650651
@@ -701,9 +702,8 @@ doCreateWindowFrame (
701702 }
702703
703704// Save border colors setted by the caller
704- window -> border_color1 = (unsigned int ) BorderColor1 ;
705- window -> border_color2 = (unsigned int ) BorderColor2 ;
706-
705+ window -> Border .border_color1 = (unsigned int ) BorderColor1 ;
706+ window -> Border .border_color2 = (unsigned int ) BorderColor2 ;
707707
708708// Uma overlapped maximizada não tem borda.
709709 int IsMaximized = FALSE;
@@ -803,34 +803,8 @@ doCreateWindowFrame (
803803 if ( Type == WT_EDITBOX_SINGLE_LINE ||
804804 Type == WT_EDITBOX_MULTIPLE_LINES )
805805 {
806-
807- // #todo
808- // The window structure has a element for border size
809- // and a flag to indicate that border is used.
810- // It also has a border style.
811-
812- // #todo: Essa rotina de cores deve ir para
813- // dentro da função __draw_window_border().
814- // ou passar tudo via argumento.
815- // ou criar uma rotina para mudar as caracteristicas da borda.
816-
817- // If it has the input focus.
818- // Respecting the colors received via parameter
819- if (window == keyboard_owner ){
820- BorderSize = 2 ;
821- } else if (window != keyboard_owner ){
822- BorderSize = 1 ;
823- };
824-
825- window -> border_size = 0 ;
826- window -> borderUsed = FALSE;
827- //if (useBorder == TRUE){
828- //window->border_color1 = (unsigned int) BorderColor1;
829- //window->border_color2 = (unsigned int) BorderColor2;
830- window -> border_size = BorderSize ;
831- window -> borderUsed = TRUE;
832- //}
833-
806+ window -> Border .border_size = BorderSize ;
807+ window -> borderUsed = TRUE;
834808 // Draw the border of an edit box
835809 __draw_window_border (parent ,window );
836810 return 0 ;
@@ -856,24 +830,6 @@ doCreateWindowFrame (
856830 // and a flag to indicate that border is used.
857831 // It also has a border style.
858832
859- // Se tiver o foco.
860- //if (window->focus == TRUE){
861- // BorderColor1 = (unsigned int) get_color(csiWWFBorder);
862- // BorderColor2 = (unsigned int) get_color(csiWWFBorder);
863- //}else{
864- // BorderColor1 = (unsigned int) get_color(csiWindowBorder);
865- // BorderColor2 = (unsigned int) get_color(csiWindowBorder);
866- //};
867-
868- //window->border_size = 0;
869- //window->borderUsed = FALSE;
870- //if (useBorder==TRUE){
871- //window->border_color1 = (unsigned int) BorderColor1;
872- //window->border_color2 = (unsigned int) BorderColor2;
873- //window->border_size = BorderSize;
874- // window->borderUsed = TRUE;
875- //}
876-
877833 // Quatro bordas de uma janela overlapped.
878834 // Uma overlapped maximizada não tem bordas.
879835 window -> borderUsed = FALSE;
@@ -892,7 +848,7 @@ doCreateWindowFrame (
892848 // #important:
893849 // The border in an overlapped window will affect
894850 // the top position of the client area rectangle.
895- window -> rcClient .top += window -> border_size ;
851+ window -> rcClient .top += window -> Border . border_size ;
896852
897853 //
898854 // Title bar
@@ -1455,20 +1411,20 @@ void *doCreateWindow (
14551411 //window->dirty = FALSE; // Validate
14561412 //window->locked = FALSE;
14571413
1458- // Initializing border stuff
1459- // #todo: use get_color(x)
1460- window -> border_color1 = COLOR_WHITE ;
1461- window -> border_color2 = COLOR_WHITE ;
1462- window -> border_size = 2 ;
1463- window -> border_style = 0 ;
1414+ // == Border =============================
1415+ // Initializing border info for the first time.
1416+ window -> Border .border_color1 = HONEY_COLOR_BORDER_LIGHT_NOFOCUS ;
1417+ window -> Border .border_color2 = HONEY_COLOR_BORDER_DARK_NOFOCUS ;
1418+ window -> Border .border_size = METRICS_BORDER_SIZE ;
1419+ window -> Border .border_style = 0 ;
1420+
1421+ // Is it used or not?
14641422 window -> borderUsed = FALSE;
14651423 // ## na verdade isse será trabalhado logo abaixo.
1466- if (window -> type == WT_OVERLAPPED )
1467- {
1424+ if (window -> type == WT_OVERLAPPED ){
14681425 window -> borderUsed = TRUE;
1469- window -> border_style = 1 ; // Minimum
14701426 }
1471- unsigned long __BorderSize = window -> border_size ;
1427+ unsigned long __BorderSize = window -> Border . border_size ;
14721428
14731429// Title bar height.
14741430// #todo: use metrics.
@@ -1702,9 +1658,6 @@ void *doCreateWindow (
17021658// Left margin and top margin.
17031659// The top margin changes if we have a bar.
17041660
1705- //clientRect.left = (unsigned long) __BorderSize;
1706- //clientRect.top = (unsigned long) __BorderSize;
1707-
17081661// >> Relative values <<
17091662
17101663// Left
@@ -2015,7 +1968,7 @@ void *doCreateWindow (
20151968 window -> shadow_style = 0 ;
20161969 window -> background_style = 0 ;
20171970 window -> titlebar_style = 0 ;
2018- window -> border_style = 0 ;
1971+ window -> Border . border_style = 0 ;
20191972 window -> menubar_style = 0 ;
20201973 window -> toolbar_style = 0 ;
20211974 window -> clientarea_style = 0 ;
@@ -3037,26 +2990,43 @@ void *CreateWindow (
30372990 isActiveWindow = TRUE;
30382991
30392992
2993+ // == Normal windows =================================
30402994// Border Color 1 = top/left (Light)
30412995// Border Color 2 = right/bottom (Dark)
30422996
3043- // Its a wwf
3044- if (isKeyboardOwner == TRUE){
3045- bc_1 = (unsigned int ) get_color (csiWWFBorder );
3046- bc_2 = (unsigned int ) HONEY_COLOR_BORDER_DARK_WWF ; //get_color(csiWWFBorder);
2997+ if (isActiveWindow == TRUE){
2998+ bc_1 = HONEY_COLOR_BORDER_LIGHT_ACTIVE ; //get_color(csiActiveWindowBorder);
2999+ bc_2 = HONEY_COLOR_BORDER_DARK_ACTIVE ; //get_color(csiActiveWindowBorder);
30473000 } else {
3048- bc_1 = (unsigned int ) get_color (csiWindowBorder );
3049- bc_2 = (unsigned int ) HONEY_COLOR_BORDER_DARK_NOFOCUS ; //get_color(csiWindowBorder);
3001+ bc_1 = HONEY_COLOR_BORDER_LIGHT_INACTIVE ; //get_color(csiActiveWindowBorder);
3002+ bc_2 = HONEY_COLOR_BORDER_DARK_INACTIVE ; //get_color(csiActiveWindowBorder);
3003+ // Its a wwf
3004+ if (isKeyboardOwner == TRUE){
3005+ bc_1 = (unsigned int ) HONEY_COLOR_BORDER_LIGHT_WWF ; //get_color(csiWWFBorder);
3006+ bc_2 = (unsigned int ) HONEY_COLOR_BORDER_DARK_WWF ; //get_color(csiWWFBorder);
3007+ } else {
3008+ bc_1 = (unsigned int ) HONEY_COLOR_BORDER_LIGHT_NOFOCUS ; //get_color(csiWindowBorder);
3009+ bc_2 = (unsigned int ) HONEY_COLOR_BORDER_DARK_NOFOCUS ; //get_color(csiWindowBorder);
3010+ }
30503011 }
30513012
3052- // Its an active window.
3053- // Active window override
3054- // We will not use the colors for wwf anymore,
3055- // Now we will use the colors for active window.
3056- if (isActiveWindow == TRUE )
3013+ // == Editbox windows =================================
3014+ // Border Color 1 = top/left (Dark)
3015+ // Border Color 2 = right/bottom (Light)
3016+
3017+ if (type == WT_EDITBOX_SINGLE_LINE || type == WT_EDITBOX_MULTIPLE_LINES )
30573018 {
3058- bc_1 = HONEY_COLOR_BORDER_LIGHT_ACTIVE ; //get_color(csiActiveWindowBorder);
3059- bc_2 = HONEY_COLOR_BORDER_DARK_ACTIVE ; //get_color(csiActiveWindowBorder);
3019+ // focus
3020+ // Border Color 1 = top/left (Dark)
3021+ // Border Color 2 = right/bottom (Light)
3022+ if (isKeyboardOwner == TRUE){
3023+ bc_1 = (unsigned int ) HONEY_COLOR_BORDER_DARK_WWF ; //get_color(csiWWFBorder);
3024+ bc_2 = (unsigned int ) HONEY_COLOR_BORDER_LIGHT_WWF ; //get_color(csiWWFBorder);
3025+ // no focus
3026+ } else {
3027+ bc_1 = (unsigned int ) HONEY_COLOR_BORDER_DARK_NOFOCUS ; //get_color(csiWindowBorder);
3028+ bc_2 = (unsigned int ) HONEY_COLOR_BORDER_LIGHT_NOFOCUS ; //get_color(csiWindowBorder);
3029+ }
30603030 }
30613031
30623032
@@ -3626,9 +3596,9 @@ void maximize_window(struct gws_window_d *window)
36263596 if (window -> type == WT_OVERLAPPED )
36273597 {
36283598 window -> rcClient .width =
3629- window -> width - (window -> border_size * 2 );
3599+ window -> width - (window -> Border . border_size * 2 );
36303600 window -> rcClient .height =
3631- window -> height - (window -> titlebar_height + window -> border_size * 2 );
3601+ window -> height - (window -> titlebar_height + window -> Border . border_size * 2 );
36323602 }
36333603
36343604//
0 commit comments