CHDK_DE Vorschauversion  Trunk Rev. 6014
 Alle Datenstrukturen Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Makrodefinitionen
gui_mbox.c-Dateireferenz
#include "camera_info.h"
#include "lang.h"
#include "modes.h"
#include "keyboard.h"
#include "gui.h"
#include "gui_draw.h"
#include "gui_lang.h"
#include "gui_mbox.h"
+ Include-Abhängigkeitsdiagramm für gui_mbox.c:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define MAX_LINES   8
 
#define MAX_WIDTH   35
 
#define SPACING_TITLE   4
 
#define SPACING_BTN   4
 
#define BUTTON_SIZE   6
 
#define BUTTONSNUM   (int)(sizeof(buttons)/sizeof(buttons[0]))
 
#define MAX_BUTTONS   3
 
#define BUTTON_SEP   18
 

Funktionen

void gui_mbox_draw ()
 
int gui_mbox_kbd_process ()
 
int gui_mbox_touch_handler (int, int)
 
void gui_mbox_init (int title, int msg, const unsigned int flags, void(*on_select)(unsigned int btn))
 
void gui_browser_progress_show (const char *msg, const unsigned int perc)
 

Variablen

static gui_handler mboxGuiHandler = { GUI_MODE_MBOX, gui_mbox_draw, gui_mbox_kbd_process, 0, gui_mbox_touch_handler, GUI_MODE_FLAG_NORESTORE_ON_SWITCH }
 
static gui_handlergui_mbox_mode_old
 
static const char * mbox_title
 
static const char * mbox_msg
 
static char mbox_to_draw
 
static unsigned int mbox_flags
 
struct {
   unsigned int   flag
 
   int   text
 
buttons []
 
static int mbox_buttons [MAX_BUTTONS]
 
static int mbox_buttons_num
 
static int mbox_button_active
 
static coord mbox_buttons_x
 
static coord mbox_buttons_y
 
static void(* mbox_on_select )(unsigned int btn)
 

Makro-Dokumentation

#define BUTTON_SEP   18

Definiert in Zeile 40 der Datei gui_mbox.c.

#define BUTTON_SIZE   6

Definiert in Zeile 35 der Datei gui_mbox.c.

#define BUTTONSNUM   (int)(sizeof(buttons)/sizeof(buttons[0]))

Definiert in Zeile 36 der Datei gui_mbox.c.

#define MAX_BUTTONS   3

Definiert in Zeile 37 der Datei gui_mbox.c.

#define MAX_LINES   8

Definiert in Zeile 22 der Datei gui_mbox.c.

#define MAX_WIDTH   35

Definiert in Zeile 23 der Datei gui_mbox.c.

#define SPACING_BTN   4

Definiert in Zeile 25 der Datei gui_mbox.c.

#define SPACING_TITLE   4

Definiert in Zeile 24 der Datei gui_mbox.c.

Dokumentation der Funktionen

void gui_browser_progress_show ( const char *  msg,
const unsigned int  perc 
)

Definiert in Zeile 178 der Datei gui_mbox.c.

179 {
180  coord x=60, y=100;
181  unsigned int w=240, h=40;
182 
184  draw_string_justified(x, y+2, msg, MAKE_COLOR(COLOR_GREY, COLOR_WHITE), 0, w, TEXT_CENTER); //title text
185  draw_rectangle(x+10, y+4+FONT_HEIGHT, x+w-10, y+h-10, MAKE_COLOR(COLOR_BLACK, COLOR_WHITE), RECT_BORDER1|DRAW_FILLED); // progress rect
186  draw_rectangle(x+11, y+5+FONT_HEIGHT, x+11+(w-22)*perc/100, y+h-11, MAKE_COLOR(COLOR_RED, COLOR_RED), RECT_BORDER0|DRAW_FILLED); // progress bar
187 }
void gui_mbox_draw ( )

Definiert in Zeile 81 der Datei gui_mbox.c.

82 {
83  if (mbox_to_draw & 1)
84  {
86 
87  int h = MAX_LINES;
89 
90  if (bw+BUTTON_SEP > w*FONT_WIDTH)
91  w = (bw+BUTTON_SEP)/FONT_WIDTH+1;
92 
93  coord x = (camera_screen.width - w * FONT_WIDTH) >> 1;
94  coord y = (camera_screen.height - (h+2) * FONT_HEIGHT) >> 1;
95  draw_rectangle(x-4, y-4, x+w*FONT_WIDTH+4, y+(h+2)*FONT_HEIGHT+SPACING_BTN+2+SPACING_TITLE+7,
97  draw_rectangle(x-2, y-2, x+w*FONT_WIDTH+2, y+FONT_HEIGHT+2, MAKE_COLOR(COLOR_BLACK, COLOR_WHITE), RECT_BORDER1|DRAW_FILLED); //title
98 
99  draw_string_justified(x, y, mbox_title, MAKE_COLOR(COLOR_BLACK, COLOR_WHITE), 0, w*FONT_WIDTH, TEXT_CENTER); //title text
100  y += FONT_HEIGHT+2+SPACING_TITLE;
101 
102  int justification = TEXT_LEFT;
103  switch (mbox_flags & MBOX_TEXT_MASK)
104  {
105  case MBOX_TEXT_CENTER: justification = TEXT_CENTER; break;
106  case MBOX_TEXT_RIGHT: justification = TEXT_RIGHT; break;
107  }
108  draw_text_justified(x+FONT_WIDTH, y, mbox_msg, MAKE_COLOR(COLOR_GREY, COLOR_WHITE), w-1, MAX_LINES, justification); // text
109 
110  mbox_buttons_x = x+((w*FONT_WIDTH-bw)>>1);
112  }
113 
114  if (mbox_to_draw & 2)
115  {
116  int i;
117  for (i=0; i<mbox_buttons_num; ++i)
118  {
120  }
121  }
122 
123  mbox_to_draw = 0;
124 }
void gui_mbox_init ( int  title,
int  msg,
const unsigned int  flags,
void(*)(unsigned int btn)  on_select 
)

Definiert in Zeile 44 der Datei gui_mbox.c.

45 {
46  int i;
47 
48  mbox_buttons_num = 0;
49  for (i=0; i<BUTTONSNUM && mbox_buttons_num<MAX_BUTTONS; ++i)
50  {
51  if (flags & MBOX_BTN_MASK & buttons[i].flag)
53  }
54  if (mbox_buttons_num == 0)
55  mbox_buttons[mbox_buttons_num++] = 0; // Add button "Ok" if there is no buttons
56 
57  switch (flags & MBOX_DEF_MASK)
58  {
59  case MBOX_DEF_BTN2:
61  break;
62  case MBOX_DEF_BTN3:
64  break;
65  case MBOX_DEF_BTN1:
66  default:
68  break;
69  }
70 
71  mbox_title = lang_str(title);
72  mbox_msg = lang_str(msg);
73  mbox_to_draw = 3;
74  mbox_flags = flags;
75  mbox_on_select = on_select;
76 
78 }
int gui_mbox_kbd_process ( )

Definiert in Zeile 127 der Datei gui_mbox.c.

128 {
130  {
131  case JOGDIAL_LEFT:
132  case KEY_LEFT:
134  mbox_to_draw = 2;
135  break;
136  case JOGDIAL_RIGHT:
137  case KEY_RIGHT:
139  mbox_to_draw = 2;
140  break;
141  case KEY_SET:
145  if (mbox_on_select)
147  break;
148  }
149  return 0;
150 }
int gui_mbox_touch_handler ( int  sx,
int  sy 
)

Definiert in Zeile 152 der Datei gui_mbox.c.

153 {
154  int i;
156 
157  if ((sy >= mbox_buttons_y-2) && (sy <= mbox_buttons_y+FONT_HEIGHT+2))
158  {
159  for (i=0; i<mbox_buttons_num; ++i)
160  {
161  if ((sx >= x) && (sx <= x+BUTTON_SIZE*FONT_WIDTH+3))
162  {
163  if (mbox_button_active != i)
164  {
165  mbox_to_draw = 2;
166  mbox_button_active = i;
167  }
168  return KEY_SET;
169  }
171  }
172  }
173  return 0;
174 }

Variablen-Dokumentation

unsigned int flag

Definiert in Zeile 27 der Datei gui_mbox.c.

gui_handler* gui_mbox_mode_old
static

Definiert in Zeile 17 der Datei gui_mbox.c.

int mbox_button_active
static

Definiert in Zeile 38 der Datei gui_mbox.c.

int mbox_buttons[MAX_BUTTONS]
static

Definiert in Zeile 38 der Datei gui_mbox.c.

int mbox_buttons_num
static

Definiert in Zeile 38 der Datei gui_mbox.c.

coord mbox_buttons_x
static

Definiert in Zeile 39 der Datei gui_mbox.c.

coord mbox_buttons_y
static

Definiert in Zeile 39 der Datei gui_mbox.c.

unsigned int mbox_flags
static

Definiert in Zeile 21 der Datei gui_mbox.c.

const char* mbox_msg
static

Definiert in Zeile 19 der Datei gui_mbox.c.

void(* mbox_on_select)(unsigned int btn)
static

Definiert in Zeile 41 der Datei gui_mbox.c.

const char* mbox_title
static

Definiert in Zeile 18 der Datei gui_mbox.c.

char mbox_to_draw
static

Definiert in Zeile 20 der Datei gui_mbox.c.

int text

Definiert in Zeile 28 der Datei gui_mbox.c.