CHDK_DE Vorschauversion  Trunk Rev. 5234
 Alle Datenstrukturen Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Makrodefinitionen
gui_mbox.c-Dateireferenz
#include "camera_info.h"
#include "stdlib.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   (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 41 der Datei gui_mbox.c.

#define BUTTON_SIZE   6

Definiert in Zeile 36 der Datei gui_mbox.c.

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

Definiert in Zeile 37 der Datei gui_mbox.c.

#define MAX_BUTTONS   3

Definiert in Zeile 38 der Datei gui_mbox.c.

#define MAX_LINES   8

Definiert in Zeile 23 der Datei gui_mbox.c.

#define MAX_WIDTH   35

Definiert in Zeile 24 der Datei gui_mbox.c.

#define SPACING_BTN   4

Definiert in Zeile 26 der Datei gui_mbox.c.

#define SPACING_TITLE   4

Definiert in Zeile 25 der Datei gui_mbox.c.

Dokumentation der Funktionen

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

Definiert in Zeile 179 der Datei gui_mbox.c.

180 {
181  coord x=60, y=100;
182  unsigned int w=240, h=40;
183 
185  draw_string_justified(x, y+2, msg, MAKE_COLOR(COLOR_GREY, COLOR_WHITE), 0, w, TEXT_CENTER); //title text
186  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
187  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
188 }
void gui_mbox_draw ( )

Definiert in Zeile 82 der Datei gui_mbox.c.

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

Definiert in Zeile 45 der Datei gui_mbox.c.

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

Definiert in Zeile 128 der Datei gui_mbox.c.

129 {
131  {
132  case JOGDIAL_LEFT:
133  case KEY_LEFT:
135  mbox_to_draw = 2;
136  break;
137  case JOGDIAL_RIGHT:
138  case KEY_RIGHT:
140  mbox_to_draw = 2;
141  break;
142  case KEY_SET:
146  if (mbox_on_select)
148  break;
149  }
150  return 0;
151 }
int gui_mbox_touch_handler ( int  sx,
int  sy 
)

Definiert in Zeile 153 der Datei gui_mbox.c.

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

Variablen-Dokumentation

unsigned int flag

Definiert in Zeile 28 der Datei gui_mbox.c.

gui_handler* gui_mbox_mode_old
static

Definiert in Zeile 18 der Datei gui_mbox.c.

int mbox_button_active
static

Definiert in Zeile 39 der Datei gui_mbox.c.

int mbox_buttons[MAX_BUTTONS]
static

Definiert in Zeile 39 der Datei gui_mbox.c.

int mbox_buttons_num
static

Definiert in Zeile 39 der Datei gui_mbox.c.

coord mbox_buttons_x
static

Definiert in Zeile 40 der Datei gui_mbox.c.

coord mbox_buttons_y
static

Definiert in Zeile 40 der Datei gui_mbox.c.

unsigned int mbox_flags
static

Definiert in Zeile 22 der Datei gui_mbox.c.

const char* mbox_msg
static

Definiert in Zeile 20 der Datei gui_mbox.c.

void(* mbox_on_select)(unsigned int btn)
static

Definiert in Zeile 42 der Datei gui_mbox.c.

const char* mbox_title
static

Definiert in Zeile 19 der Datei gui_mbox.c.

char mbox_to_draw
static

Definiert in Zeile 21 der Datei gui_mbox.c.

int text

Definiert in Zeile 29 der Datei gui_mbox.c.