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

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define MAX_ACTIONS   14
 

Typdefinitionen

typedef void(* mpopup_on_select_t )(unsigned int btn)
 

Funktionen

int gui_mpopup_kbd_process ()
 
void gui_mpopup_kbd_process_menu_btn ()
 
void gui_mpopup_draw ()
 
static int gui_mpopup_touch_handler (int, int)
 
void gui_mpopup_init (struct mpopup_item *popup_actions, const unsigned int flags, void(*on_select)(unsigned int actn))
 
unsigned int gui_mpopup_result ()
 
static void gui_mpopup_draw_actions ()
 
void exit_mpopup (int action)
 
int _module_unloader ()
 
int _module_can_unload ()
 
int _module_exit_alt ()
 

Variablen

gui_handler GUI_MODE_MPOPUP_MODULE
 
static gui_handlergui_mpopup_mode_old
 
static int running = 0
 
static char mpopup_to_draw
 
struct mpopup_itemactions
 
static short mpopup_actions [MAX_ACTIONS]
 
static int mpopup_actions_num
 
static int mpopup_actions_active
 
static coord mpopup_actions_x
 
static coord mpopup_actions_y
 
static int mpopup_actions_w
 
static mpopup_on_select_t mpopup_on_select
 
libmpopup_sym _libmpopup
 
ModuleInfo _module_info
 

Makro-Dokumentation

#define MAX_ACTIONS   14

Definiert in Zeile 31 der Datei gui_mpopup.c.

Dokumentation der benutzerdefinierten Typen

typedef void(* mpopup_on_select_t)(unsigned int btn)

Definiert in Zeile 41 der Datei gui_mpopup.c.

Dokumentation der Funktionen

int _module_can_unload ( )

Definiert in Zeile 199 der Datei gui_mpopup.c.

200 {
201  return running == 0;
202 }
int _module_exit_alt ( )

Definiert in Zeile 204 der Datei gui_mpopup.c.

205 {
207  running = 0;
208  return 0;
209 }
int _module_unloader ( )

Definiert in Zeile 191 der Datei gui_mpopup.c.

192 {
193  if (mpopup_on_select)
195 
196  return 0;
197 }
void exit_mpopup ( int  action)

Definiert in Zeile 121 der Datei gui_mpopup.c.

122 {
124 
125  mpopup_on_select_t on_select = mpopup_on_select; // this could be reinited in callback
126  mpopup_on_select = 0;
127  if (on_select)
128  on_select(action);
129 
130  running--;
131 }
void gui_mpopup_draw ( )

Definiert in Zeile 92 der Datei gui_mpopup.c.

92  {
93  if (mpopup_to_draw) {
94  int i;
95  coord x=0, y=0;
96  unsigned int w, h;
97 
98  w = 0;
99  for (i=0; i<mpopup_actions_num; ++i) {
101  if (h > w) w=h;
102  }
103  w+=2;
104  h = mpopup_actions_num;
105 
106  x = (camera_screen.width - w*FONT_WIDTH) / 2;
107  y = (camera_screen.height - h*FONT_HEIGHT) / 2;
108  draw_rectangle(x-4, y-4, x+w*FONT_WIDTH+4, y+h*FONT_HEIGHT+3,
110 
114 
116  mpopup_to_draw = 0;
117  }
118 }
static void gui_mpopup_draw_actions ( )
static

Definiert in Zeile 79 der Datei gui_mpopup.c.

void gui_mpopup_init ( struct mpopup_item popup_actions,
const unsigned int  flags,
void(*)(unsigned int actn)  on_select 
)

Definiert in Zeile 45 der Datei gui_mpopup.c.

46 {
47  int i;
48 
49  running++;
50 
52  actions = popup_actions;
53  for (i=0; actions[i].flag && mpopup_actions_num<MAX_ACTIONS; ++i)
54  {
55  if ((flags & MPOPUP_MASK & actions[i].flag) || (actions[i].flag == MPOPUP_CANCEL))
57  }
58  if (mpopup_actions_num == 0)
59  {
60  on_select(MPOPUP_CANCEL);
61  running--;
62  return;
63  }
64 
66 
67  mpopup_to_draw = 1;
68  mpopup_on_select = on_select;
70 }
int gui_mpopup_kbd_process ( )

Definiert in Zeile 139 der Datei gui_mpopup.c.

140 {
142  case JOGDIAL_LEFT:
143  case KEY_UP:
147  break;
148  case JOGDIAL_RIGHT:
149  case KEY_DOWN:
151  else mpopup_actions_active = 0;
153  break;
154  case KEY_LEFT:
156  break;
157  case KEY_SET:
159  break;
160  }
161  return 0;
162 }
void gui_mpopup_kbd_process_menu_btn ( )

Definiert in Zeile 134 der Datei gui_mpopup.c.

135 {
137 }
unsigned int gui_mpopup_result ( )

Definiert in Zeile 73 der Datei gui_mpopup.c.

74 {
76 }
static int gui_mpopup_touch_handler ( int  sx,
int  sy 
)
static

Definiert in Zeile 164 der Datei gui_mpopup.c.

165 {
167  {
168  sy = (sy - mpopup_actions_y) / FONT_HEIGHT;
169  if (mpopup_actions_active != sy)
170  {
172  mpopup_to_draw = 1;
173  }
174  return KEY_SET;
175  }
176  return 0;
177 }

Variablen-Dokumentation

libmpopup_sym _libmpopup
Initialisierung:

Definiert in Zeile 213 der Datei gui_mpopup.c.

struct mpopup_item* actions

Definiert in Zeile 33 der Datei gui_mpopup.c.

gui_handler* gui_mpopup_mode_old
static

Definiert in Zeile 27 der Datei gui_mpopup.c.

short mpopup_actions[MAX_ACTIONS]
static

Definiert in Zeile 35 der Datei gui_mpopup.c.

int mpopup_actions_active
static

Definiert in Zeile 37 der Datei gui_mpopup.c.

int mpopup_actions_num
static

Definiert in Zeile 36 der Datei gui_mpopup.c.

int mpopup_actions_w
static

Definiert in Zeile 39 der Datei gui_mpopup.c.

coord mpopup_actions_x
static

Definiert in Zeile 38 der Datei gui_mpopup.c.

coord mpopup_actions_y
static

Definiert in Zeile 38 der Datei gui_mpopup.c.

mpopup_on_select_t mpopup_on_select
static

Definiert in Zeile 42 der Datei gui_mpopup.c.

char mpopup_to_draw
static

Definiert in Zeile 29 der Datei gui_mpopup.c.

int running = 0
static

Definiert in Zeile 28 der Datei gui_mpopup.c.