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

Dokumentation der benutzerdefinierten Typen

typedef void(* mpopup_on_select_t)(unsigned int btn)

Definiert in Zeile 42 der Datei gui_mpopup.c.

Dokumentation der Funktionen

int _module_can_unload ( )

Definiert in Zeile 200 der Datei gui_mpopup.c.

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

Definiert in Zeile 205 der Datei gui_mpopup.c.

206 {
208  running = 0;
209  return 0;
210 }
int _module_unloader ( )

Definiert in Zeile 192 der Datei gui_mpopup.c.

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

Definiert in Zeile 122 der Datei gui_mpopup.c.

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

Definiert in Zeile 93 der Datei gui_mpopup.c.

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

Definiert in Zeile 80 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 46 der Datei gui_mpopup.c.

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

Definiert in Zeile 140 der Datei gui_mpopup.c.

141 {
143  case JOGDIAL_LEFT:
144  case KEY_UP:
148  break;
149  case JOGDIAL_RIGHT:
150  case KEY_DOWN:
152  else mpopup_actions_active = 0;
154  break;
155  case KEY_LEFT:
157  break;
158  case KEY_SET:
160  break;
161  }
162  return 0;
163 }
void gui_mpopup_kbd_process_menu_btn ( )

Definiert in Zeile 135 der Datei gui_mpopup.c.

136 {
138 }
unsigned int gui_mpopup_result ( )

Definiert in Zeile 74 der Datei gui_mpopup.c.

75 {
77 }
static int gui_mpopup_touch_handler ( int  sx,
int  sy 
)
static

Definiert in Zeile 165 der Datei gui_mpopup.c.

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

Variablen-Dokumentation

libmpopup_sym _libmpopup
Initialisierung:

Definiert in Zeile 214 der Datei gui_mpopup.c.

struct mpopup_item* actions

Definiert in Zeile 34 der Datei gui_mpopup.c.

gui_handler* gui_mpopup_mode_old
static

Definiert in Zeile 28 der Datei gui_mpopup.c.

short mpopup_actions[MAX_ACTIONS]
static

Definiert in Zeile 36 der Datei gui_mpopup.c.

int mpopup_actions_active
static

Definiert in Zeile 38 der Datei gui_mpopup.c.

int mpopup_actions_num
static

Definiert in Zeile 37 der Datei gui_mpopup.c.

unsigned int mpopup_actions_w
static

Definiert in Zeile 40 der Datei gui_mpopup.c.

coord mpopup_actions_x
static

Definiert in Zeile 39 der Datei gui_mpopup.c.

coord mpopup_actions_y
static

Definiert in Zeile 39 der Datei gui_mpopup.c.

mpopup_on_select_t mpopup_on_select
static

Definiert in Zeile 43 der Datei gui_mpopup.c.

char mpopup_to_draw
static

Definiert in Zeile 30 der Datei gui_mpopup.c.

int running = 0
static

Definiert in Zeile 29 der Datei gui_mpopup.c.