Chameleon Applications

Chameleon Applications Svn Source Tree

Root/branches/iFabio/i386/boot2/gui.h

Source at commit 214 created 13 years 5 months ago.
By ifabio, update to chameleon trunk 630, and now the pakage folder is the same as blackosx branch, also add Icon "building" into buildpkg script, and add mint theme info into the English localizable.strings.
1/*
2 * gui.h
3 *
4 *
5 * Created by Jasmin Fazlic on 18.12.08.
6 * Copyright 2008/09 Jasmin Fazlic All rights reserved.
7 * Copyright 2008/09 iNDi All rights reserved.
8 *
9 */
10
11#include "boot.h"
12#include "bootstruct.h"
13#include "graphics.h"
14#include "graphic_utils.h"
15#include "picopng.h"
16
17#ifndef __BOOT2_GUI_H
18#define __BOOT2_GUI_H
19
20#define CHARACTERS_COUNT223
21
22#define BOOT_NORMAL0
23#define BOOT_VERBOSE1
24#define BOOT_IGNORECACHE2
25#define BOOT_SINGLEUSER3
26#define DO_NOT_BOOT4
27#define CLOSE_INFO_MENU5
28
29#define INFOMENU_NATIVEBOOT_START 1
30#define INFOMENU_NATIVEBOOT_END3
31
32#define MENU_SHOW_MEMORY_INFO4
33#define MENU_SHOW_VIDEO_INFO5
34#define MENU_SHOW_HELP6
35
36enum {
37HorizontalLayout= 0,
38VerticalLayout= 1,
39};
40
41enum {
42kBackspaceKey= 0x08,
43kTabKey= 0x09,
44kReturnKey= 0x0d,
45kEscapeKey= 0x1b,
46kUpArrowkey= 0x4800,
47kDownArrowkey= 0x5000,
48kASCIIKeyMask= 0x7f,
49kF5Key= 0x3f00,
50kF10Key= 0x4400
51};
52
53/*
54 * Menu item structure.
55 */
56
57typedef struct {
58position_tpos;
59char*text;
60boolenabled;
61boolexpandable;
62} menuitem_t;
63
64/*
65 * Image structure.
66 */
67typedef struct {
68pixmap_t*image;
69charname[32];
70} image_t;
71
72/*
73 * Font structure.
74 */
75typedef struct {
76uint16_theight;// Font Height
77uint16_twidth;// Font Width for monospace font only
78pixmap_t*chars[CHARACTERS_COUNT];
79} font_t;
80
81/*
82 * Window structure.
83 */
84typedef struct
85{
86position_tpos;// X,Y Position of window on screen
87pixmap_t*pixmap;// Buffer
88uint16_twidth;// Width
89uint16_theight;// Height
90uint16_thborder;// Horizontal border
91uint16_tvborder;// Vertical border
92uint16_ticonspacing;// Icon spacing
93position_tcursor;// Text Cursor X,Y Position will be multiples of font width & height
94uint32_tbgcolor;// Background color AARRGGBB
95uint32_tfgcolor;// Foreground color AARRGGBB
96uint32_tfont_small_color;// Color for small font AARRGGBB
97uint32_tfont_console_color;// Color for consle font AARRGGBB
98booldraw;// Draw flag
99} window_t;
100
101/*
102 * gui structure
103 */
104typedef struct
105{
106uint8_tmaxdevices;//
107uint8_tlayout;// Horizontal or Vertical layout
108
109pixmap_t*backbuffer;// Off screen buffer
110
111window_tscreen;//
112window_tbackground;// Position of background graphic within screen
113window_tlogo;// Logo
114window_tbootprompt;// Bootprompt Window
115window_tdevicelist;// Devicelist Window
116window_tinfobox;// Infobox Window
117window_tmenu;// Menu
118
119window_tprogressbar;// Progress bar
120window_tcountdown;// Countdown text
121
122window_tdebug;// Debug
123
124boolinitialised;// Initialised
125boolredraw;// Redraw flag
126} gui_t;
127
128
129gui_t gui;// gui structure
130
131font_t font_small;
132font_t font_console;
133
134int initGUI();
135void drawBackground();
136
137void setupDeviceList(config_file_t *theme);
138void drawDeviceIcon(BVRef device, pixmap_t *buffer, position_t p, bool isSelected);
139void drawDeviceList(int start, int end, int selection);
140void drawProgressBar(pixmap_t *blendInto, uint16_t width, position_t p, uint8_t progress);
141
142void showInfoBox(char *title, char *text);
143
144int dprintf( window_t * window, const char * fmt, ...);
145int gprintf( window_t * window, const char * fmt, ...);
146int vprf(const char * fmt, va_list ap);
147
148int drawInfoMenu();
149int updateInfoMenu(int key);
150void drawInfoMenuItems();
151
152void showGraphicBootPrompt();
153void clearGraphicBootPrompt();
154void updateGraphicBootPrompt(int key);
155
156void updateVRAM();
157
158void drawStr(char *ch, font_t *font, pixmap_t *blendInto, position_t p);
159void drawStrCenteredAt(char *ch, font_t *font, pixmap_t *blendInto, position_t p);
160
161#endif /* !__BOOT2_GUI_H */
162

Archive Download this file

Revision: 214