Partial merge of the SDL2 branch into trunk
* Mainly get the cleanup of window drawing functions. git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@2102 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
f0ebf223a8
commit
78fcc648c3
13
src/Makefile
13
src/Makefile
@ -203,7 +203,8 @@ endif
|
||||
LOPT = $(shell sdl-config --libs) -lSDL_image -lpng -ljpeg -lz $(TTFLOPT) -lfreetype -lbe $(LUALOPT)
|
||||
CC = gcc
|
||||
#Append the gcc kind to the objdir (gcc2 or gcc4) to avoid conflicts when switching from one to other.
|
||||
OBJDIR = ../obj/haiku
|
||||
OBJKIND = $(shell gcc -dumpversion)
|
||||
OBJDIR = ../obj/haiku/$(OBJKIND)
|
||||
ZIP = zip
|
||||
|
||||
else
|
||||
@ -286,8 +287,8 @@ endif
|
||||
LUACOPT =
|
||||
LUALOPT =
|
||||
else
|
||||
LUACOPT = `pkg-config lua --cflags --silence-errors ||pkg-config lua5.1 --cflags --silence-errors ||pkg-config lua-5.1 --cflags`
|
||||
LUALOPT = `pkg-config lua --libs --silence-errors ||pkg-config lua5.1 --libs --silence-errors ||pkg-config lua-5.1 --libs`
|
||||
LUACOPT = $(shell pkg-config lua --cflags --silence-errors ||pkg-config lua5.1 --cflags --silence-errors ||pkg-config lua-5.1 --cflags)
|
||||
LUALOPT = $(shell pkg-config lua --libs --silence-errors ||pkg-config lua5.1 --libs --silence-errors ||pkg-config lua-5.1 --libs)
|
||||
endif
|
||||
endif
|
||||
|
||||
@ -358,8 +359,8 @@ endif
|
||||
|
||||
# Compiles a regular linux executable for the native platform
|
||||
BIN = ../bin/grafx2
|
||||
COPT = -W -Wall -Wdeclaration-after-statement -std=c99 -c -g `sdl-config --cflags` $(TTFCOPT) $(LUACOPT) $(JOYCOPT) -O$(OPTIM) `pkg-config --cflags libpng`
|
||||
LOPT = `sdl-config --libs` -lSDL_image $(TTFLOPT) `pkg-config --libs libpng` $(LUALOPT) -lm
|
||||
COPT = -W -Wall -Wdeclaration-after-statement -std=c99 -c -g $(shell sdl-config --cflags) $(TTFCOPT) $(LUACOPT) $(JOYCOPT) -O$(OPTIM) $(shell pkg-config --cflags libpng) -D_XOPEN_SOURCE=700
|
||||
LOPT = $(shell sdl-config --libs) -lSDL_image $(TTFLOPT) $(shell pkg-config --libs libpng) $(LUALOPT) -lm
|
||||
CC = gcc
|
||||
OBJDIR = ../obj/unix
|
||||
FCLOPT = -lfontconfig
|
||||
@ -581,7 +582,7 @@ $(OBJDIR)/winres.o : gfx2.ico
|
||||
|
||||
# Compile the C++ file needed in Haiku to use the API
|
||||
$(OBJDIR)/haiku.o : haiku.cpp
|
||||
g++ -c haiku.cpp -o $(OBJDIR)/haiku.o
|
||||
g++ -c haiku.cpp -o $(OBJDIR)/haiku.o $(COPT) -Wno-multichar
|
||||
|
||||
clean :
|
||||
$(DELCOMMAND) $(OBJ)
|
||||
|
||||
@ -157,9 +157,7 @@ void Button_Message_initial(void)
|
||||
Open_window(260,172,str);
|
||||
|
||||
Window_display_frame_in(10,20,239,62);
|
||||
Block(Window_pos_X+(Menu_factor_X*11),
|
||||
Window_pos_Y+(Menu_factor_Y*21),
|
||||
Menu_factor_X*237,Menu_factor_Y*60,MC_Black);
|
||||
Window_rectangle(11,21,237,60,MC_Black);
|
||||
for (y=23,offs_y=0; y<79; offs_y+=231,y++)
|
||||
for (x=14,x_pos=0; x_pos<231; x_pos++,x++)
|
||||
Pixel_in_window(x,y,Gfx->Logo_grafx2[offs_y+x_pos]);
|
||||
@ -1852,11 +1850,8 @@ void Check_mode_button(short x_pos, short y_pos, byte state)
|
||||
case 2 : color=MC_Dark; break;
|
||||
default: color=MC_Black;
|
||||
}
|
||||
Block(Window_pos_X+Menu_factor_X*x_pos,Window_pos_Y+Menu_factor_Y*y_pos,
|
||||
Menu_factor_X*9,Menu_factor_Y*3,color);
|
||||
|
||||
Update_rect(Window_pos_X+Menu_factor_X*x_pos,Window_pos_Y+Menu_factor_Y*y_pos,
|
||||
Menu_factor_X*9,Menu_factor_Y*3);
|
||||
Window_rectangle(x_pos, y_pos, 9, 3, color);
|
||||
Update_window_area(x_pos, y_pos,9,3);
|
||||
}
|
||||
|
||||
/// Number of video modes to display in the resolution menu
|
||||
@ -2422,15 +2417,9 @@ void Draw_button_gradient_style(short x_pos,short y_pos,int technique)
|
||||
|
||||
// On commence par afficher les 2 côtés qui constituent le dégradé de base:
|
||||
// Côté gauche (noir)
|
||||
Block(Window_pos_X+((x_pos+2)*Menu_factor_X),
|
||||
Window_pos_Y+((y_pos+2)*Menu_factor_Y),
|
||||
Menu_factor_X*6,
|
||||
Menu_factor_Y*10,MC_Black);
|
||||
Window_rectangle(x_pos+2, y_pos+2, 6, 10, MC_Black);
|
||||
// Côté droit (blanc)
|
||||
Block(Window_pos_X+((x_pos+8)*Menu_factor_X),
|
||||
Window_pos_Y+((y_pos+2)*Menu_factor_Y),
|
||||
Menu_factor_X*5,
|
||||
Menu_factor_Y*10,MC_White);
|
||||
Window_rectangle(x_pos+8, y_pos+2, 5, 10, MC_White);
|
||||
|
||||
switch(technique)
|
||||
{
|
||||
@ -2469,8 +2458,7 @@ void Draw_button_gradient_style(short x_pos,short y_pos,int technique)
|
||||
}
|
||||
}
|
||||
|
||||
Update_rect(Window_pos_X+((x_pos+2)*Menu_factor_X),Window_pos_Y+((y_pos+2)*Menu_factor_Y),
|
||||
Menu_factor_X*10,Menu_factor_Y*10);
|
||||
Update_window_area(x_pos+2,y_pos+2,10,10);
|
||||
}
|
||||
|
||||
void Load_gradient_data(int index)
|
||||
@ -3940,20 +3928,20 @@ void Button_Brush_FX(void)
|
||||
}
|
||||
// Dessin des coins et du centre pour les boutons du "brush handle"
|
||||
// Coin HG
|
||||
Block(Window_pos_X+(Menu_factor_X* 77),Window_pos_Y+(Menu_factor_Y* 92),Menu_factor_X*7,Menu_factor_Y,MC_Black);
|
||||
Block(Window_pos_X+(Menu_factor_X* 77),Window_pos_Y+(Menu_factor_Y* 92),Menu_factor_X,Menu_factor_Y*7,MC_Black);
|
||||
Window_rectangle(77, 92, 7, 1, MC_Black);
|
||||
Window_rectangle(77, 92, 1, 7, MC_Black);
|
||||
// Coin HD
|
||||
Block(Window_pos_X+(Menu_factor_X*105),Window_pos_Y+(Menu_factor_Y* 92),Menu_factor_X*7,Menu_factor_Y,MC_Black);
|
||||
Block(Window_pos_X+(Menu_factor_X*111),Window_pos_Y+(Menu_factor_Y* 92),Menu_factor_X,Menu_factor_Y*7,MC_Black);
|
||||
Window_rectangle(105, 92, 7, 1, MC_Black);
|
||||
Window_rectangle(111, 92, 1, 7, MC_Black);
|
||||
// Centre
|
||||
Block(Window_pos_X+(Menu_factor_X* 91),Window_pos_Y+(Menu_factor_Y*109),Menu_factor_X*7,Menu_factor_Y,MC_Black);
|
||||
Block(Window_pos_X+(Menu_factor_X* 94),Window_pos_Y+(Menu_factor_Y*106),Menu_factor_X,Menu_factor_Y*7,MC_Black);
|
||||
Window_rectangle(91, 109, 7, 1, MC_Black);
|
||||
Window_rectangle(94, 106, 1, 7, MC_Black);
|
||||
// Coin BG
|
||||
Block(Window_pos_X+(Menu_factor_X* 77),Window_pos_Y+(Menu_factor_Y*126),Menu_factor_X*7,Menu_factor_Y,MC_Black);
|
||||
Block(Window_pos_X+(Menu_factor_X* 77),Window_pos_Y+(Menu_factor_Y*120),Menu_factor_X,Menu_factor_Y*7,MC_Black);
|
||||
Window_rectangle(77, 126, 7, 1, MC_Black);
|
||||
Window_rectangle(77, 120, 1, 7, MC_Black);
|
||||
// Coin BD
|
||||
Block(Window_pos_X+(Menu_factor_X*105),Window_pos_Y+(Menu_factor_Y*126),Menu_factor_X*7,Menu_factor_Y,MC_Black);
|
||||
Block(Window_pos_X+(Menu_factor_X*111),Window_pos_Y+(Menu_factor_Y*120),Menu_factor_X,Menu_factor_Y*7,MC_Black);
|
||||
Window_rectangle(105, 126, 7, 1, MC_Black);
|
||||
Window_rectangle(111, 120, 1, 7, MC_Black);
|
||||
|
||||
Update_window_area(0,0,Window_width, Window_height);
|
||||
|
||||
@ -4105,9 +4093,9 @@ void Refresh_airbrush_settings(byte selected_color, byte update_slider)
|
||||
Num2str(Airbrush_multi_flow[selected_color],str,2);
|
||||
Print_in_window(196,130,str,MC_Black,MC_Light);
|
||||
|
||||
Update_rect(Window_pos_X+(Menu_factor_X*(Window_palette_button_list->Pos_X+4+(selected_color >> 4)*10)),
|
||||
Window_pos_Y+(Menu_factor_Y*(Window_palette_button_list->Pos_Y+3+(selected_color & 15)* 5)),
|
||||
Menu_factor_X<<1,Menu_factor_Y*5);
|
||||
Update_window_area(Window_palette_button_list->Pos_X+4+(selected_color >> 4)*10,
|
||||
Window_palette_button_list->Pos_Y+3+(selected_color & 15)* 5,
|
||||
2,5);
|
||||
}
|
||||
|
||||
|
||||
@ -4254,7 +4242,7 @@ void Button_Airbrush_menu(void)
|
||||
Print_in_window(50,151," Mono",MC_Black,MC_Light);
|
||||
else
|
||||
Print_in_window(50,151,"Multi",MC_Black,MC_Light);
|
||||
Update_rect(Window_pos_X+50*Menu_factor_X,Window_pos_Y+151*Menu_factor_Y,5*8*Menu_factor_X,8*Menu_factor_Y);
|
||||
Update_window_area(50,151,5*8,8);
|
||||
Display_cursor();
|
||||
break;
|
||||
|
||||
@ -4513,8 +4501,7 @@ void Display_effect_sprite(int sprite_number, short start_x, short start_y)
|
||||
|
||||
void Display_effect_state(short x, short y, char * label, byte state)
|
||||
{
|
||||
Block(Window_pos_X+(x*Menu_factor_X),Window_pos_Y+(y*Menu_factor_Y),
|
||||
12*Menu_factor_X,Menu_factor_Y<<3,MC_Light);
|
||||
Window_rectangle(x,y,12,8,MC_Light);
|
||||
|
||||
Print_in_window(x,y,label,(state)?MC_White:MC_Black,MC_Light);
|
||||
if (state)
|
||||
@ -5058,11 +5045,11 @@ void Button_Text(void)
|
||||
}
|
||||
|
||||
}
|
||||
Update_rect(
|
||||
Window_pos_X+preview_button->Pos_X*Menu_factor_X,
|
||||
Window_pos_Y+preview_button->Pos_Y*Menu_factor_Y,
|
||||
preview_button->Width*Menu_factor_X,
|
||||
preview_button->Height*Menu_factor_Y);
|
||||
Update_window_area(
|
||||
preview_button->Pos_X,
|
||||
preview_button->Pos_Y,
|
||||
preview_button->Width,
|
||||
preview_button->Height);
|
||||
}
|
||||
if (redraw_is_needed || preview_is_needed)
|
||||
{
|
||||
|
||||
@ -296,16 +296,16 @@ void Button_Stencil_mode(void)
|
||||
|
||||
void Stencil_tag_color(byte color, byte tag_color)
|
||||
{
|
||||
Block(Window_pos_X+(Menu_factor_X*(Window_palette_button_list->Pos_X+4+(color >> 4)*10)),
|
||||
Window_pos_Y+(Menu_factor_Y*(Window_palette_button_list->Pos_Y+3+(color & 15)* 5)),
|
||||
Menu_factor_X<<1,Menu_factor_Y*5,tag_color);
|
||||
Window_rectangle(Window_palette_button_list->Pos_X+4+(color >> 4)*10,
|
||||
Window_palette_button_list->Pos_Y+3+(color & 15)* 5,
|
||||
2,5,tag_color);
|
||||
}
|
||||
|
||||
void Stencil_update_color(byte color)
|
||||
{
|
||||
Update_rect(Window_pos_X+(Menu_factor_X*(Window_palette_button_list->Pos_X+4+(color >> 4)*10)),
|
||||
Window_pos_Y+(Menu_factor_Y*(Window_palette_button_list->Pos_Y+3+(color & 15)* 5)),
|
||||
Menu_factor_X<<1,Menu_factor_Y*5);
|
||||
Update_window_area(Window_palette_button_list->Pos_X+4+(color >> 4)*10,
|
||||
Window_palette_button_list->Pos_Y+3+(color & 15)* 5,
|
||||
2,5);
|
||||
}
|
||||
|
||||
void Button_Stencil_menu(void)
|
||||
@ -1091,9 +1091,9 @@ void Button_Sieve_menu(void)
|
||||
Window_set_normal_button( 97,126,11,11,"\033",0,1,SDLK_LEFT|MOD_SHIFT); // 10
|
||||
Window_set_normal_button(121,126,11,11,"\032",0,1,SDLK_RIGHT|MOD_SHIFT); // 11
|
||||
button_bg_color = Window_set_normal_button(109,126,11,11,"" ,0,1,SDLK_INSERT); // 12
|
||||
Block(Window_pos_X+(Menu_factor_X*(button_bg_color->Pos_X+2)),
|
||||
Window_pos_Y+(Menu_factor_Y*(button_bg_color->Pos_Y+2)),
|
||||
Menu_factor_X*7, Menu_factor_Y*7, (default_bg_color)?MC_White:MC_Black);
|
||||
Window_rectangle(button_bg_color->Pos_X+2,
|
||||
button_bg_color->Pos_Y+2,
|
||||
7, 7, (default_bg_color)?MC_White:MC_Black);
|
||||
|
||||
Window_set_repeatable_button(109, 69,11,11,"\030",0,1,SDLK_UP); // 13
|
||||
Window_set_repeatable_button(109, 93,11,11,"\031",0,1,SDLK_DOWN); // 14
|
||||
@ -1287,15 +1287,15 @@ void Button_Sieve_menu(void)
|
||||
case 12 : // Toggle octets insérés
|
||||
Hide_cursor();
|
||||
default_bg_color=!default_bg_color;
|
||||
Block(Window_pos_X+(Menu_factor_X*(button_bg_color->Pos_X+2)),
|
||||
Window_pos_Y+(Menu_factor_Y*(button_bg_color->Pos_Y+2)),
|
||||
Menu_factor_X*7, Menu_factor_Y*7, (default_bg_color)?MC_White:MC_Black);
|
||||
Window_rectangle(button_bg_color->Pos_X+2,
|
||||
button_bg_color->Pos_Y+2,
|
||||
7, 7, (default_bg_color)?MC_White:MC_Black);
|
||||
Display_cursor();
|
||||
Update_rect(
|
||||
Window_pos_X+(Menu_factor_X*(button_bg_color->Pos_X+2)),
|
||||
Window_pos_Y+(Menu_factor_Y*(button_bg_color->Pos_Y+2)),
|
||||
Menu_factor_X*7,
|
||||
Menu_factor_Y*7);
|
||||
Update_window_area(
|
||||
button_bg_color->Pos_X+2,
|
||||
button_bg_color->Pos_Y+2,
|
||||
7,
|
||||
7);
|
||||
|
||||
break;
|
||||
|
||||
|
||||
90
src/engine.c
90
src/engine.c
@ -1611,7 +1611,7 @@ void Open_window(word width,word height, const char * title)
|
||||
Save_background(&(Window_background[Windows_open-1]), Window_pos_X, Window_pos_Y, width, height);
|
||||
|
||||
// Fenêtre grise
|
||||
Block(Window_pos_X+(Menu_factor_X<<1),Window_pos_Y+(Menu_factor_Y<<1),(width-4)*Menu_factor_X,(height-4)*Menu_factor_Y,MC_Window);
|
||||
Window_rectangle(2,2,width-4,height-4,MC_Window);
|
||||
|
||||
// -- Frame de la fenêtre ----- --- -- - -
|
||||
|
||||
@ -1620,8 +1620,8 @@ void Open_window(word width,word height, const char * title)
|
||||
Window_display_frame_out(1,1,width-2,height-2);
|
||||
|
||||
// Barre sous le titre
|
||||
Block(Window_pos_X+(Menu_factor_X<<3),Window_pos_Y+(11*Menu_factor_Y),(width-16)*Menu_factor_X,Menu_factor_Y,MC_Dark);
|
||||
Block(Window_pos_X+(Menu_factor_X<<3),Window_pos_Y+(12*Menu_factor_Y),(width-16)*Menu_factor_X,Menu_factor_Y,MC_White);
|
||||
Window_rectangle(8,11,width-16,1,MC_Dark);
|
||||
Window_rectangle(8,12,width-16,1,MC_White);
|
||||
|
||||
title_length = strlen(title);
|
||||
if (title_length+2 > (size_t)(width/8))
|
||||
@ -1715,7 +1715,7 @@ void Close_window(void)
|
||||
// Restore de ce que la fenêtre cachait
|
||||
Restore_background(Window_background[Windows_open-1], Window_pos_X, Window_pos_Y, Window_width, Window_height);
|
||||
Window_background[Windows_open-1]=NULL;
|
||||
Update_rect(Window_pos_X,Window_pos_Y,Window_width*Menu_factor_X,Window_height*Menu_factor_Y);
|
||||
Update_window_area(0,0,Window_width,Window_height);
|
||||
Windows_open--;
|
||||
}
|
||||
else
|
||||
@ -1774,9 +1774,8 @@ void Window_draw_normal_bouton(word x_pos,word y_pos,word width,word height,
|
||||
Print_in_window(text_x_pos,text_y_pos,title,title_color,MC_Light);
|
||||
|
||||
if (undersc_letter)
|
||||
Block(Window_pos_X+((text_x_pos+((undersc_letter-1)<<3))*Menu_factor_X),
|
||||
Window_pos_Y+((text_y_pos+8)*Menu_factor_Y),
|
||||
Menu_factor_X<<3,Menu_factor_Y,MC_Dark);
|
||||
Window_rectangle(text_x_pos+((undersc_letter-1)<<3),
|
||||
text_y_pos+8,8,1,MC_Dark);
|
||||
}
|
||||
|
||||
|
||||
@ -1784,14 +1783,14 @@ void Window_draw_normal_bouton(word x_pos,word y_pos,word width,word height,
|
||||
void Window_select_normal_button(word x_pos,word y_pos,word width,word height)
|
||||
{
|
||||
Window_display_frame_generic(x_pos,y_pos,width,height,MC_Dark,MC_Black,MC_Dark,MC_Dark,MC_Black);
|
||||
Update_rect(Window_pos_X+x_pos*Menu_factor_X, Window_pos_Y+y_pos*Menu_factor_Y, width*Menu_factor_X, height*Menu_factor_Y);
|
||||
Update_window_area(x_pos, y_pos, width, height);
|
||||
}
|
||||
|
||||
// -- Button normal désenfoncé dans la fenêtre --
|
||||
void Window_unselect_normal_button(word x_pos,word y_pos,word width,word height)
|
||||
{
|
||||
Window_display_frame_out(x_pos,y_pos,width,height);
|
||||
Update_rect(Window_pos_X+x_pos*Menu_factor_X, Window_pos_Y+y_pos*Menu_factor_Y, width*Menu_factor_X, height*Menu_factor_Y);
|
||||
Update_window_area(x_pos, y_pos, width, height);
|
||||
}
|
||||
|
||||
|
||||
@ -1801,7 +1800,7 @@ void Window_draw_palette_bouton(word x_pos,word y_pos)
|
||||
word color;
|
||||
|
||||
for (color=0; color<=255; color++)
|
||||
Block( Window_pos_X+((((color >> 4)*10)+x_pos+6)*Menu_factor_X),Window_pos_Y+((((color & 15)*5)+y_pos+3)*Menu_factor_Y),Menu_factor_X*5,Menu_factor_Y*5,color);
|
||||
Window_rectangle( ((color >> 4)*10)+x_pos+6,((color & 15)*5)+y_pos+3,5,5,color);
|
||||
|
||||
Window_display_frame(x_pos,y_pos,164,86);
|
||||
}
|
||||
@ -1817,11 +1816,11 @@ void Window_clear_tags(void)
|
||||
word window_x_pos;
|
||||
//word window_y_pos;
|
||||
|
||||
origin_x=Window_pos_X+(Window_palette_button_list->Pos_X+3)*Menu_factor_X;
|
||||
origin_y=Window_pos_Y+(Window_palette_button_list->Pos_Y+3)*Menu_factor_Y;
|
||||
for (x_pos=0,window_x_pos=origin_x;x_pos<16;x_pos++,window_x_pos+=(Menu_factor_X*10))
|
||||
Block(window_x_pos,origin_y,Menu_factor_X*3,Menu_factor_Y*80,MC_Light);
|
||||
Update_rect(origin_x,origin_y,ToWinL(160),ToWinH(80));
|
||||
origin_x=Window_palette_button_list->Pos_X+3;
|
||||
origin_y=Window_palette_button_list->Pos_Y+3;
|
||||
for (x_pos=0,window_x_pos=origin_x;x_pos<16;x_pos++,window_x_pos+=10)
|
||||
Window_rectangle(window_x_pos,origin_y,3,80,MC_Light);
|
||||
Update_window_area(origin_x,origin_y,160,80);
|
||||
}
|
||||
|
||||
|
||||
@ -1997,8 +1996,8 @@ void Window_input_content(T_Special_button * button, const char * content)
|
||||
|
||||
void Window_clear_input_button(T_Special_button * button)
|
||||
{
|
||||
Block((button->Pos_X+2)*Menu_factor_X+Window_pos_X,(button->Pos_Y+2)*Menu_factor_Y+Window_pos_Y,(button->Width/8)*8*Menu_factor_X,8*Menu_factor_Y,MC_Light);
|
||||
Update_rect((button->Pos_X+2)*Menu_factor_X+Window_pos_X,(button->Pos_Y+2)*Menu_factor_Y+Window_pos_Y,button->Width/8*8*Menu_factor_X,8*Menu_factor_Y);
|
||||
Window_rectangle(button->Pos_X+2,button->Pos_Y+2,(button->Width/8)*8,8,MC_Light);
|
||||
Update_window_area(button->Pos_X+2,button->Pos_Y+2,button->Width/8*8,8);
|
||||
}
|
||||
|
||||
|
||||
@ -2176,7 +2175,7 @@ T_Dropdown_button * Window_set_dropdown_button(word x_pos,word y_pos,word width,
|
||||
|
||||
temp->Next=Window_dropdown_button_list;
|
||||
Window_dropdown_button_list=temp;
|
||||
Window_draw_normal_bouton(x_pos,y_pos,width,height,"",-1,1);
|
||||
Window_draw_normal_bouton(x_pos,y_pos,width,height,"",0,1);
|
||||
if (label && label[0])
|
||||
Print_in_window(temp->Pos_X+2,temp->Pos_Y+(temp->Height-7)/2,label,MC_Black,MC_Light);
|
||||
if (display_arrow)
|
||||
@ -2302,9 +2301,7 @@ void Open_popup(word x_pos, word y_pos, word width,word height)
|
||||
|
||||
/*
|
||||
// Fenêtre grise
|
||||
Block(Window_pos_X+1*Menu_factor_X,
|
||||
Window_pos_Y+1*Menu_factor_Y,
|
||||
(width-2)*Menu_factor_X,(height-2)*Menu_factor_Y,MC_Light);
|
||||
Window_rectangle(1,1,width-2,height-2,MC_Light);
|
||||
|
||||
// Frame noir puis en relief
|
||||
Window_display_frame_mono(0,0,width,height,MC_White);
|
||||
@ -2389,7 +2386,7 @@ void Close_popup(void)
|
||||
// Restore de ce que la fenêtre cachait
|
||||
Restore_background(Window_background[Windows_open-1], Window_pos_X, Window_pos_Y, Window_width, Window_height);
|
||||
Window_background[Windows_open-1]=NULL;
|
||||
Update_rect(Window_pos_X,Window_pos_Y,Window_width*Menu_factor_X,Window_height*Menu_factor_Y);
|
||||
Update_window_area(0,0,Window_width,Window_height);
|
||||
Windows_open--;
|
||||
}
|
||||
else
|
||||
@ -2594,7 +2591,7 @@ void Get_color_behind_window(byte * color, byte * click)
|
||||
}
|
||||
|
||||
Restore_background(buffer,Window_pos_X,Window_pos_Y,Window_width,Window_height);
|
||||
Update_rect(Window_pos_X, Window_pos_Y, Window_width*Menu_factor_X, Window_height*Menu_factor_Y);
|
||||
Update_window_area(0, 0, Window_width, Window_height);
|
||||
Cursor_shape=CURSOR_SHAPE_ARROW;
|
||||
Paintbrush_hidden=b;
|
||||
Cursor_hidden=cursor_was_hidden;
|
||||
@ -2727,7 +2724,7 @@ void Move_window(short dx, short dy)
|
||||
else
|
||||
{
|
||||
// Update pour effacer le rectangle XOR
|
||||
Update_rect(Window_pos_X, Window_pos_Y, Window_width*Menu_factor_X, Window_height*Menu_factor_Y);
|
||||
Update_window_area(0, 0, Window_width, Window_height);
|
||||
}
|
||||
Cursor_shape=CURSOR_SHAPE_ARROW;
|
||||
Display_cursor();
|
||||
@ -2771,34 +2768,34 @@ T_Dropdown_choice * Dropdown_activate(T_Dropdown_button *button, short off_x, sh
|
||||
// Dessin de la boite
|
||||
|
||||
// Bord gauche
|
||||
Block(Window_pos_X,Window_pos_Y,Menu_factor_X,box_height*Menu_factor_Y,MC_Black);
|
||||
Window_rectangle(0,0,1,box_height,MC_Black);
|
||||
// Frame fonce et blanc
|
||||
Window_display_frame_out(1,0,button->Dropdown_width-1,box_height);
|
||||
// Ombre portée
|
||||
if (SHADOW_BOTTOM)
|
||||
{
|
||||
Block(Window_pos_X+SHADOW_RIGHT*Menu_factor_X,
|
||||
Window_pos_Y+box_height*Menu_factor_Y,
|
||||
button->Dropdown_width*Menu_factor_X,
|
||||
SHADOW_BOTTOM*Menu_factor_Y,
|
||||
Window_rectangle(SHADOW_RIGHT,
|
||||
box_height,
|
||||
button->Dropdown_width,
|
||||
SHADOW_BOTTOM,
|
||||
MC_Black);
|
||||
Block(Window_pos_X,
|
||||
Window_pos_Y+box_height*Menu_factor_Y,
|
||||
SHADOW_RIGHT*Menu_factor_X,
|
||||
Menu_factor_Y,
|
||||
Window_rectangle(0,
|
||||
box_height,
|
||||
SHADOW_RIGHT,
|
||||
1,
|
||||
MC_Black);
|
||||
}
|
||||
if (SHADOW_RIGHT)
|
||||
{
|
||||
Block(Window_pos_X+button->Dropdown_width*Menu_factor_X,
|
||||
Window_pos_Y+SHADOW_BOTTOM*Menu_factor_Y,
|
||||
SHADOW_RIGHT*Menu_factor_X,
|
||||
(box_height-SHADOW_BOTTOM)*Menu_factor_Y,
|
||||
Window_rectangle(button->Dropdown_width,
|
||||
SHADOW_BOTTOM,
|
||||
SHADOW_RIGHT,
|
||||
box_height-SHADOW_BOTTOM,
|
||||
MC_Black);
|
||||
Block(Window_pos_X+button->Dropdown_width*Menu_factor_X,
|
||||
Window_pos_Y,
|
||||
Menu_factor_X,
|
||||
SHADOW_BOTTOM*Menu_factor_Y,
|
||||
Window_rectangle(button->Dropdown_width,
|
||||
1,
|
||||
1,
|
||||
SHADOW_BOTTOM,
|
||||
MC_Black);
|
||||
}
|
||||
|
||||
@ -2807,9 +2804,7 @@ T_Dropdown_choice * Dropdown_activate(T_Dropdown_button *button, short off_x, sh
|
||||
{
|
||||
old_selected_index = selected_index;
|
||||
// Fenêtre grise
|
||||
Block(Window_pos_X+2*Menu_factor_X,
|
||||
Window_pos_Y+1*Menu_factor_Y,
|
||||
(button->Dropdown_width-3)*Menu_factor_X,(box_height-2)*Menu_factor_Y,MC_Light);
|
||||
Window_rectangle(2,1,button->Dropdown_width-3,box_height-2,MC_Light);
|
||||
// Affichage des items
|
||||
for(item=button->First_item,choice_index=0; item!=NULL; item=item->Next,choice_index++)
|
||||
{
|
||||
@ -2819,9 +2814,8 @@ T_Dropdown_choice * Dropdown_activate(T_Dropdown_button *button, short off_x, sh
|
||||
{
|
||||
color_1=MC_White;
|
||||
color_2=MC_Dark;
|
||||
Block(Window_pos_X+3*Menu_factor_X,
|
||||
Window_pos_Y+((2+choice_index*8)*Menu_factor_Y),
|
||||
(button->Dropdown_width-5)*Menu_factor_X,(8)*Menu_factor_Y,MC_Dark);
|
||||
Window_rectangle(3,2+choice_index*8,
|
||||
(button->Dropdown_width-5),8,MC_Dark);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2830,7 +2824,7 @@ T_Dropdown_choice * Dropdown_activate(T_Dropdown_button *button, short off_x, sh
|
||||
}
|
||||
Print_in_window(3,2+choice_index*8,item->Label,color_1,color_2);
|
||||
}
|
||||
Update_rect(Window_pos_X,Window_pos_Y,Window_width*Menu_factor_X,Window_height*Menu_factor_Y);
|
||||
Update_window_area(0,0,Window_width,Window_height);
|
||||
Display_cursor();
|
||||
|
||||
do
|
||||
|
||||
26
src/help.c
26
src/help.c
@ -159,9 +159,7 @@ void Window_set_shortcut(int action_id)
|
||||
Window_set_normal_button(6,111,111,14,"Reset default",0,1,KEY_NONE); // 3
|
||||
|
||||
// Titre
|
||||
Block(Window_pos_X+(Menu_factor_X*5),
|
||||
Window_pos_Y+(Menu_factor_Y*16),
|
||||
Menu_factor_X*292,Menu_factor_Y*11,MC_Black);
|
||||
Window_rectangle(5,16,292,11,MC_Black);
|
||||
Print_in_window(7,18,ConfigKey[config_index].Label,MC_White,MC_Black);
|
||||
|
||||
// Zone de description
|
||||
@ -184,16 +182,12 @@ void Window_set_shortcut(int action_id)
|
||||
if (redraw_controls)
|
||||
{
|
||||
Hide_cursor();
|
||||
Block(Window_pos_X+(Menu_factor_X*32),
|
||||
Window_pos_Y+(Menu_factor_Y*33),
|
||||
Menu_factor_X*21*8,Menu_factor_Y*8,MC_Light);
|
||||
Window_rectangle(32,33,21*8,8,MC_Light);
|
||||
Print_in_window_limited(32,33,Key_name(shortcut_ptr[0]),21,MC_Black,MC_Light);
|
||||
Block(Window_pos_X+(Menu_factor_X*32),
|
||||
Window_pos_Y+(Menu_factor_Y*52),
|
||||
Menu_factor_X*21*8,Menu_factor_Y*8,MC_Light);
|
||||
Window_rectangle(32,52,21*8,8,MC_Light);
|
||||
Print_in_window_limited(32,52,Key_name(shortcut_ptr[1]),21,MC_Black,MC_Light);
|
||||
|
||||
Update_rect(Window_pos_X,Window_pos_Y,302*Menu_factor_X,131*Menu_factor_Y);
|
||||
Update_window_area(0,0,302,131);
|
||||
|
||||
Display_cursor();
|
||||
redraw_controls=0;
|
||||
@ -527,9 +521,7 @@ void Window_help(int section, const char *sub_section)
|
||||
|
||||
// dessiner de la fenêtre où va défiler le texte
|
||||
Window_display_frame_in(8,17,274,132);
|
||||
Block(Window_pos_X+(Menu_factor_X*9),
|
||||
Window_pos_Y+(Menu_factor_Y*18),
|
||||
Menu_factor_X*272,Menu_factor_Y*130,MC_Black);
|
||||
Window_rectangle(9, 18, 272, 130, MC_Black);
|
||||
|
||||
Window_set_normal_button(266,153,35,14,"Exit",0,1,KEY_ESC); // 1
|
||||
scroller=Window_set_scroller_button(290,18,130,nb_lines,
|
||||
@ -545,7 +537,7 @@ void Window_help(int section, const char *sub_section)
|
||||
|
||||
Display_help();
|
||||
|
||||
Update_rect(Window_pos_X,Window_pos_Y,310*Menu_factor_X,175*Menu_factor_Y);
|
||||
Update_window_area(0,0,310,175);
|
||||
|
||||
Display_cursor();
|
||||
|
||||
@ -702,9 +694,7 @@ void Button_Stats(void)
|
||||
|
||||
// Dessin de la fenetre ou va s'afficher le texte
|
||||
Window_display_frame_in(8,17,294,132);
|
||||
Block(Window_pos_X+(Menu_factor_X*9),
|
||||
Window_pos_Y+(Menu_factor_Y*18),
|
||||
Menu_factor_X*292,Menu_factor_Y*130,MC_Black);
|
||||
Window_rectangle(9,18,292,130,MC_Black);
|
||||
|
||||
Window_set_normal_button(120,153,70,14,"OK",0,1,KEY_ESC); // 1
|
||||
|
||||
@ -879,7 +869,7 @@ void Button_Stats(void)
|
||||
sprintf(buffer,"%dx%d",Screen_width,Screen_height);
|
||||
Print_in_window(106,y,buffer,STATS_DATA_COLOR,MC_Black);
|
||||
|
||||
Update_rect(Window_pos_X,Window_pos_Y,Menu_factor_X*310,Menu_factor_Y*174);
|
||||
Update_window_area(0,0,310,174);
|
||||
|
||||
Display_cursor();
|
||||
|
||||
|
||||
@ -23,8 +23,6 @@
|
||||
along with Grafx2; if not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
#define _XOPEN_SOURCE 500
|
||||
|
||||
// Signal handler: I activate it for the two platforms who certainly
|
||||
// support them. Feel free to check with others.
|
||||
#if defined(__WIN32__) || defined(__linux__)
|
||||
|
||||
@ -325,7 +325,6 @@ int Handle_mouse_click(SDL_MouseButtonEvent event)
|
||||
else
|
||||
Input_new_mouse_K |= 1;
|
||||
break;
|
||||
break;
|
||||
|
||||
case SDL_BUTTON_RIGHT:
|
||||
if (Button_inverter)
|
||||
@ -333,7 +332,6 @@ int Handle_mouse_click(SDL_MouseButtonEvent event)
|
||||
else
|
||||
Input_new_mouse_K |= 2;
|
||||
break;
|
||||
break;
|
||||
|
||||
case SDL_BUTTON_MIDDLE:
|
||||
Key = KEY_MOUSEMIDDLE|Key_modifiers(SDL_GetModState());
|
||||
@ -347,6 +345,7 @@ int Handle_mouse_click(SDL_MouseButtonEvent event)
|
||||
case SDL_BUTTON_WHEELDOWN:
|
||||
Key = KEY_MOUSEWHEELDOWN|Key_modifiers(SDL_GetModState());
|
||||
return 0;
|
||||
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
@ -842,11 +841,11 @@ int Get_input(int sleep_time)
|
||||
SDL_Event event;
|
||||
int user_feedback_required = 0; // Flag qui indique si on doit arrêter de traiter les évènements ou si on peut enchainer
|
||||
|
||||
Color_cycling();
|
||||
// Commit any pending screen update.
|
||||
// This is done in this function because it's called after reading
|
||||
// some user input.
|
||||
Flush_update();
|
||||
Color_cycling();
|
||||
Key_ANSI = 0;
|
||||
Key = 0;
|
||||
Mouse_moved=0;
|
||||
|
||||
4
src/io.c
4
src/io.c
@ -24,8 +24,6 @@
|
||||
// Fonctions de lecture/ecriture file, gèrent les systèmes big-endian et
|
||||
// little-endian.
|
||||
|
||||
#define _XOPEN_SOURCE 500
|
||||
|
||||
#include <SDL_endian.h>
|
||||
#include <string.h>
|
||||
#include <sys/stat.h>
|
||||
@ -460,7 +458,7 @@ byte Create_lock_file(const char *file_directory)
|
||||
#else
|
||||
char lock_filename[MAX_PATH_CHARACTERS];
|
||||
|
||||
#ifdef GCWZERO
|
||||
#ifdef GCWZERO
|
||||
strcpy(lock_filename,"/media/home/.grafx2/");
|
||||
#else
|
||||
strcpy(lock_filename,file_directory);
|
||||
|
||||
@ -523,10 +523,8 @@ byte Readline_ex(word x_pos,word y_pos,char * str,byte visible_size,byte max_siz
|
||||
Hide_cursor();
|
||||
|
||||
// Effacement de la chaîne
|
||||
Block(window_x+(x_pos*Menu_factor_X),window_y+(y_pos*Menu_factor_Y),
|
||||
visible_size*(Menu_factor_X<<3),(Menu_factor_Y<<3),BACKGROUND_COLOR);
|
||||
Update_rect(window_x+(x_pos*Menu_factor_X),window_y+(y_pos*Menu_factor_Y),
|
||||
visible_size*(Menu_factor_X<<3),(Menu_factor_Y<<3));
|
||||
Window_rectangle(x_pos,y_pos,visible_size<<3,8,BACKGROUND_COLOR);
|
||||
Update_window_area(x_pos,y_pos,visible_size<<3,8);
|
||||
|
||||
// Mise à jour des variables se rapportant à la chaîne en fonction de la chaîne initiale
|
||||
strcpy(initial_string,str);
|
||||
@ -544,8 +542,7 @@ byte Readline_ex(word x_pos,word y_pos,char * str,byte visible_size,byte max_siz
|
||||
display_string[visible_size-1]=RIGHT_TRIANGLE_CHARACTER;
|
||||
|
||||
Display_whole_string(window_x+(x_pos*Menu_factor_X),window_y+(y_pos*Menu_factor_Y),display_string,position - offset);
|
||||
Update_rect(window_x+(x_pos*Menu_factor_X),window_y+(y_pos*Menu_factor_Y),
|
||||
visible_size*(Menu_factor_X<<3),(Menu_factor_Y<<3));
|
||||
Update_window_area(x_pos,y_pos,visible_size<<3,8);
|
||||
Flush_update();
|
||||
if (Mouse_K)
|
||||
{
|
||||
@ -640,8 +637,7 @@ byte Readline_ex(word x_pos,word y_pos,char * str,byte visible_size,byte max_siz
|
||||
size--;
|
||||
|
||||
// Effacement de la chaîne
|
||||
Block(window_x+(x_pos*Menu_factor_X),window_y+(y_pos*Menu_factor_Y),
|
||||
visible_size*(Menu_factor_X<<3),(Menu_factor_Y<<3),BACKGROUND_COLOR);
|
||||
Window_rectangle(x_pos,y_pos,visible_size<<3,8,BACKGROUND_COLOR);
|
||||
goto affichage;
|
||||
}
|
||||
break;
|
||||
@ -650,8 +646,7 @@ byte Readline_ex(word x_pos,word y_pos,char * str,byte visible_size,byte max_siz
|
||||
{
|
||||
// Effacement de la chaîne
|
||||
if (position==size)
|
||||
Block(window_x+(x_pos*Menu_factor_X),window_y+(y_pos*Menu_factor_Y),
|
||||
visible_size*(Menu_factor_X<<3),(Menu_factor_Y<<3),BACKGROUND_COLOR);
|
||||
Window_rectangle(x_pos,y_pos,visible_size<<3,8,BACKGROUND_COLOR);
|
||||
position--;
|
||||
if (offset > 0 && (position == 0 || position < (offset + 1)))
|
||||
offset--;
|
||||
@ -674,8 +669,7 @@ byte Readline_ex(word x_pos,word y_pos,char * str,byte visible_size,byte max_siz
|
||||
{
|
||||
// Effacement de la chaîne
|
||||
if (position==size)
|
||||
Block(window_x+(x_pos*Menu_factor_X),window_y+(y_pos*Menu_factor_Y),
|
||||
visible_size*(Menu_factor_X<<3),(Menu_factor_Y<<3),BACKGROUND_COLOR);
|
||||
Window_rectangle(x_pos,y_pos,visible_size<<3,8,BACKGROUND_COLOR);
|
||||
position = 0;
|
||||
offset = 0;
|
||||
goto affichage;
|
||||
@ -700,8 +694,7 @@ byte Readline_ex(word x_pos,word y_pos,char * str,byte visible_size,byte max_siz
|
||||
Remove_character(str,position);
|
||||
size--;
|
||||
// Effacement de la chaîne
|
||||
Block(window_x+(x_pos*Menu_factor_X),window_y+(y_pos*Menu_factor_Y),
|
||||
visible_size*(Menu_factor_X<<3),(Menu_factor_Y<<3),BACKGROUND_COLOR);
|
||||
Window_rectangle(x_pos,y_pos,visible_size<<3,8,BACKGROUND_COLOR);
|
||||
goto affichage;
|
||||
}
|
||||
break;
|
||||
@ -709,8 +702,7 @@ byte Readline_ex(word x_pos,word y_pos,char * str,byte visible_size,byte max_siz
|
||||
str[0]='\0';
|
||||
position=offset=0;
|
||||
// Effacement de la chaîne
|
||||
Block(window_x+(x_pos*Menu_factor_X),window_y+(y_pos*Menu_factor_Y),
|
||||
visible_size*(Menu_factor_X<<3),(Menu_factor_Y<<3),BACKGROUND_COLOR);
|
||||
Window_rectangle(x_pos,y_pos,visible_size<<3,8,BACKGROUND_COLOR);
|
||||
goto affichage;
|
||||
case SDLK_RETURN :
|
||||
break;
|
||||
@ -771,8 +763,7 @@ affichage:
|
||||
}
|
||||
#endif // defined(__ANDROID__)
|
||||
// Effacement de la chaîne
|
||||
Block(window_x+(x_pos*Menu_factor_X),window_y+(y_pos*Menu_factor_Y),
|
||||
visible_size*(Menu_factor_X<<3),(Menu_factor_Y<<3),BACKGROUND_COLOR);
|
||||
Window_rectangle(x_pos,y_pos,visible_size<<3,8,BACKGROUND_COLOR);
|
||||
// On raffiche la chaine correctement
|
||||
if (input_type==INPUT_TYPE_INTEGER)
|
||||
{
|
||||
@ -801,9 +792,8 @@ affichage:
|
||||
{
|
||||
Print_in_window_limited(x_pos,y_pos,str,visible_size,TEXT_COLOR,BACKGROUND_COLOR);
|
||||
}
|
||||
Update_rect(window_x+(x_pos*Menu_factor_X),window_y+(y_pos*Menu_factor_Y),
|
||||
visible_size*(Menu_factor_X<<3),(Menu_factor_Y<<3));
|
||||
|
||||
Update_window_area(x_pos,y_pos,visible_size<<3,8);
|
||||
|
||||
return (input_key==SDLK_RETURN);
|
||||
}
|
||||
|
||||
|
||||
28
src/shade.c
28
src/shade.c
@ -134,10 +134,9 @@ void Shade_draw_grad_ranges(void)
|
||||
else
|
||||
{
|
||||
Window_display_frame_out(224,35,64,48);
|
||||
Block(Window_pos_X+(Menu_factor_X*225),Window_pos_Y+(Menu_factor_Y*36),
|
||||
Menu_factor_X*62,Menu_factor_Y*46,MC_Light);
|
||||
Window_rectangle(225,36,62,46,MC_Light);
|
||||
}
|
||||
Update_rect(Window_pos_X+(Menu_factor_X*224),Window_pos_Y+(Menu_factor_Y*35),Menu_factor_X*64,Menu_factor_Y*48);
|
||||
Update_window_area(224,35,64,48);
|
||||
}
|
||||
|
||||
|
||||
@ -181,7 +180,7 @@ void Tag_shades(word selection_start,word selection_end)
|
||||
Block(x_pos,y_pos,Menu_factor_X<<2,Menu_factor_Y<<1,MC_Light);
|
||||
}
|
||||
}
|
||||
Update_rect(Window_pos_X+8*Menu_factor_X,Window_pos_Y+131*Menu_factor_Y,Menu_factor_X*64<<2,Menu_factor_Y*8<<3);
|
||||
Update_window_area(8,131,64<<2,8<<3);
|
||||
}
|
||||
|
||||
|
||||
@ -245,17 +244,17 @@ void Display_all_shade(word selection_start1,word selection_end1,
|
||||
if (Shade_list[Shade_current].List[position]&0x0100) // Vide
|
||||
{
|
||||
Window_display_frame_out((column<<2)+8,(line*7)+127,4,4);
|
||||
Block(Window_pos_X+(Menu_factor_X*((column<<2)+9)),
|
||||
Window_pos_Y+(Menu_factor_Y*((line*7)+128)),
|
||||
Menu_factor_X<<1,Menu_factor_Y<<1,MC_Light);
|
||||
Window_rectangle((column<<2)+9,
|
||||
(line*7)+128,
|
||||
2,2,MC_Light);
|
||||
}
|
||||
else // color
|
||||
Block(Window_pos_X+(Menu_factor_X*((column<<2)+8)),
|
||||
Window_pos_Y+(Menu_factor_Y*((line*7)+127)),
|
||||
Menu_factor_X<<2,Menu_factor_Y<<2,
|
||||
Window_rectangle((column<<2)+8,
|
||||
(line*7)+127,
|
||||
4,4,
|
||||
Shade_list[Shade_current].List[position]&0xFF);
|
||||
}
|
||||
Update_rect(Window_pos_X+7*Menu_factor_X,Window_pos_Y+126*Menu_factor_Y,Menu_factor_X*((64<<2)+2),Menu_factor_Y*((8<<2)+2));
|
||||
Update_window_area(7,126,(64<<2)+2,(8<<2)+2);
|
||||
Tag_shades(selection_start2,selection_end2);
|
||||
Shade_draw_grad_ranges();
|
||||
Display_selected_cell_color(selection_start2,selection_end2);
|
||||
@ -484,8 +483,7 @@ int Menu_shade(void)
|
||||
|
||||
// Tracé d'un cadre creux autour du bloc dégradé
|
||||
Window_display_frame_in(171,26,18,66);
|
||||
Block(Window_pos_X+(Menu_factor_X*172),Window_pos_Y+(Menu_factor_Y*27),
|
||||
Menu_factor_X<<4,Menu_factor_Y<<6,MC_Black);
|
||||
Window_rectangle(172,27,16,64,MC_Black);
|
||||
// Tracé d'un cadre creux autour de tous les dégradés
|
||||
Window_display_frame_in(223,34,66,50);
|
||||
Shade_draw_grad_ranges();
|
||||
@ -526,7 +524,7 @@ int Menu_shade(void)
|
||||
memcpy(buffer ,Shade_list[Shade_current].List,512*sizeof(word));
|
||||
memcpy(undo_buffer,Shade_list[Shade_current].List,512*sizeof(word));
|
||||
|
||||
Update_rect(Window_pos_X,Window_pos_Y,Menu_factor_X*310,Menu_factor_Y*190);
|
||||
Update_window_area(0,0,310,190);
|
||||
|
||||
Display_cursor();
|
||||
|
||||
@ -1070,7 +1068,7 @@ void Button_Quick_shade_menu(void)
|
||||
Num2str(Quick_shade_step,str,3);
|
||||
Window_input_content(step_button,str);
|
||||
|
||||
Update_rect(Window_pos_X,Window_pos_Y,Menu_factor_X*142,Menu_factor_Y*56);
|
||||
Update_window_area(0,0,142,56);
|
||||
|
||||
Display_cursor();
|
||||
|
||||
|
||||
@ -108,24 +108,16 @@ void Window_display_frame_generic(word x_pos,word y_pos,word width,word height,
|
||||
// color_brc=Coin Bas-Droite
|
||||
{
|
||||
// Bord haut (sans les extrémités)
|
||||
Block(Window_pos_X+((x_pos+1)*Menu_factor_X),
|
||||
Window_pos_Y+(y_pos*Menu_factor_Y),
|
||||
(width-2)*Menu_factor_X,Menu_factor_Y,color_tl);
|
||||
Window_rectangle(x_pos+1,y_pos,width-2,1,color_tl);
|
||||
|
||||
// Bord bas (sans les extrémités)
|
||||
Block(Window_pos_X+((x_pos+1)*Menu_factor_X),
|
||||
Window_pos_Y+((y_pos+height-1)*Menu_factor_Y),
|
||||
(width-2)*Menu_factor_X,Menu_factor_Y,color_br);
|
||||
Window_rectangle(x_pos+1,y_pos+height-1,width-2,1,color_br);
|
||||
|
||||
// Bord gauche (sans les extrémités)
|
||||
Block(Window_pos_X+(x_pos*Menu_factor_X),
|
||||
Window_pos_Y+((y_pos+1)*Menu_factor_Y),
|
||||
Menu_factor_X,(height-2)*Menu_factor_Y,color_tl);
|
||||
Window_rectangle(x_pos, y_pos+1,1,height-2,color_tl);
|
||||
|
||||
// Bord droite (sans les extrémités)
|
||||
Block(Window_pos_X+((x_pos+width-1)*Menu_factor_X),
|
||||
Window_pos_Y+((y_pos+1)*Menu_factor_Y),
|
||||
Menu_factor_X,(height-2)*Menu_factor_Y,color_br);
|
||||
Window_rectangle(x_pos+width-1,y_pos+1,1,height-2,color_br);
|
||||
|
||||
// Coin haut gauche
|
||||
Pixel_in_window(x_pos,y_pos,color_tlc);
|
||||
@ -706,15 +698,12 @@ void Print_char_in_window(short x_pos,short y_pos,const unsigned char c,byte tex
|
||||
{
|
||||
short x,y;
|
||||
byte *pixel;
|
||||
x_pos=(x_pos*Menu_factor_X)+Window_pos_X;
|
||||
y_pos=(y_pos*Menu_factor_Y)+Window_pos_Y;
|
||||
// Premier pixel du caractère
|
||||
pixel=Menu_font + (c<<6);
|
||||
|
||||
for (y=0;y<8;y++)
|
||||
for (x=0;x<8;x++)
|
||||
Block(x_pos+(x*Menu_factor_X), y_pos+(y*Menu_factor_Y),
|
||||
Menu_factor_X, Menu_factor_Y,
|
||||
Pixel_in_window(x_pos+x, y_pos+y,
|
||||
(*(pixel++)?text_color:background_color));
|
||||
}
|
||||
|
||||
@ -735,10 +724,15 @@ void Print_in_window_limited(short x,short y,const char * str,byte size,byte tex
|
||||
/// Draws a string in a window
|
||||
void Print_in_window(short x,short y,const char * str,byte text_color,byte background_color)
|
||||
{
|
||||
Print_general((x*Menu_factor_X)+Window_pos_X,
|
||||
(y*Menu_factor_Y)+Window_pos_Y,
|
||||
str,text_color,background_color);
|
||||
Update_rect(x*Menu_factor_X+Window_pos_X,y*Menu_factor_Y+Window_pos_Y,8*Menu_factor_X*strlen(str),8*Menu_factor_Y);
|
||||
short x_pos = x;
|
||||
int index;
|
||||
|
||||
for (index=0;str[index]!='\0';index++)
|
||||
{
|
||||
Print_char_in_window(x,y,str[index],text_color,background_color);
|
||||
x+=8;
|
||||
}
|
||||
Update_window_area(x_pos,y,8*strlen(str),8);
|
||||
}
|
||||
|
||||
// Draws a string in the menu's status bar
|
||||
@ -1005,7 +999,7 @@ void Print_counter(short x,short y,const char * str,byte text_color,byte backgro
|
||||
}
|
||||
}
|
||||
}
|
||||
Update_rect(Window_pos_X+x*Menu_factor_X,Window_pos_Y+y*Menu_factor_Y,strlen(str)*Menu_factor_X*6,8*Menu_factor_Y);
|
||||
Update_window_area(x,y,strlen(str)*6,8);
|
||||
}
|
||||
|
||||
|
||||
@ -1074,7 +1068,7 @@ byte Confirmation_box(char * message)
|
||||
Window_set_normal_button((window_width/3)-20 ,29+(nb_lines<<3),40,14,"Yes",1,1,SDLK_y); // 1
|
||||
Window_set_normal_button(((window_width<<1)/3)-20,29+(nb_lines<<3),40,14,"No" ,1,1,SDLK_n); // 2
|
||||
|
||||
Update_rect(Window_pos_X, Window_pos_Y, Window_width*Menu_factor_X, Window_height*Menu_factor_Y);
|
||||
Update_window_area(0, 0, Window_width, Window_height);
|
||||
|
||||
Display_cursor();
|
||||
|
||||
@ -1116,8 +1110,7 @@ int Requester_window(char* message, int initial_value)
|
||||
Window_set_normal_button(60 ,37,40,14,"OK",1,1,SDLK_y); // 2
|
||||
Window_set_normal_button(130,37,60,14,"Cancel" ,1,1,SDLK_n); // 3
|
||||
|
||||
Update_rect(Window_pos_X, Window_pos_Y, Menu_factor_X * window_width,
|
||||
Menu_factor_Y * 60);
|
||||
Update_window_area(0, 0, window_width, 60);
|
||||
Display_cursor();
|
||||
|
||||
do
|
||||
@ -1152,7 +1145,7 @@ void Warning_message(char * message)
|
||||
|
||||
Print_in_window((window_width>>1)-(strlen(message)<<2),20,message,MC_Black,MC_Light);
|
||||
Window_set_normal_button((window_width>>1)-20 ,37,40,14,"OK",1,1,SDLK_RETURN); // 1
|
||||
Update_rect(Window_pos_X,Window_pos_Y,Menu_factor_X*window_width,Menu_factor_Y*60);
|
||||
Update_window_area(0,0,window_width,60);
|
||||
Display_cursor();
|
||||
|
||||
do
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user