Rev 5821 | Rev 7533 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5821 | Rev 7475 | ||
---|---|---|---|
Line 3... | Line 3... | ||
3 | #include "fitz.h" |
3 | #include "fitz.h" |
4 | #include "mupdf.h" |
4 | #include "mupdf.h" |
5 | #include "muxps.h" |
5 | #include "muxps.h" |
6 | #include "pdfapp.h" |
6 | #include "pdfapp.h" |
7 | #include "icons/allbtns.h" |
7 | #include "icons/allbtns.h" |
- | 8 | #include "kolibri.c" |
|
Line 8... | Line 9... | ||
8 | 9 | ||
9 | // need to be a part of menuet/os.h |
10 | // need to be a part of menuet/os.h |
10 | #define BT_DEL 0x80000000 |
11 | #define BT_DEL 0x80000000 |
11 | #define BT_HIDE 0x40000000 |
12 | #define BT_HIDE 0x40000000 |
Line 75... | Line 76... | ||
75 | }; |
76 | }; |
Line 76... | Line 77... | ||
76 | 77 | ||
Line 77... | Line 78... | ||
77 | /*==== DATA ====*/ |
78 | /*==== DATA ====*/ |
78 | - | ||
79 | static char Title[1024] = "uPDF"; |
79 | |
80 | static char * filename = "/hd0/1/yand.pdf"; |
80 | static char Title[1024] = "uPDF"; |
81 | static pdfapp_t gapp; |
81 | static pdfapp_t gapp; |
Line 82... | Line 82... | ||
82 | char debugstr[256]; |
82 | char debugstr[256]; |
Line 182... | Line 182... | ||
182 | if (key_mode_enter_page_number==1) HandleNewPageNumber(0); else DrawPagination(); |
182 | if (key_mode_enter_page_number==1) HandleNewPageNumber(0); else DrawPagination(); |
Line 183... | Line 183... | ||
183 | 183 | ||
Line 184... | Line 184... | ||
184 | if (Form.client_width > gapp.image->w) window_center = (Form.client_width - gapp.image->w) / 2; else window_center = 0; |
184 | if (Form.client_width > gapp.image->w) window_center = (Form.client_width - gapp.image->w) / 2; else window_center = 0; |
185 | 185 | ||
186 | gapp.panx = 0; |
186 | gapp.panx = 0; |
187 | if (gapp.image->n == 4) |
187 | if (gapp.image->n == 4) { |
188 | blit(window_center + Form.client_left, |
188 | blit(window_center + Form.client_left, |
189 | Form.client_top + TOOLBAR_HEIGHT, |
189 | Form.client_top + TOOLBAR_HEIGHT, |
190 | Form.client_width, |
190 | Form.client_width, |
Line 194... | Line 194... | ||
194 | gapp.image->w, |
194 | gapp.image->w, |
195 | gapp.image->h, |
195 | gapp.image->h, |
196 | gapp.image->w * gapp.image->n, |
196 | gapp.image->w * gapp.image->n, |
197 | gapp.image->samples |
197 | gapp.image->samples |
198 | ); |
198 | ); |
- | 199 | } |
|
199 | else if (gapp.image->n == 2) |
200 | else if (gapp.image->n == 2) |
200 | { |
201 | { |
201 | int i = gapp.image->w*gapp.image->h; |
202 | int i = gapp.image->w*gapp.image->h; |
202 | unsigned char *color = malloc(i*4); |
203 | unsigned char *color = malloc(i*4); |
203 | if (color != NULL) |
204 | if (color != NULL) |
Line 231... | Line 232... | ||
231 | { |
232 | { |
232 | if (Form.client_width > gapp.image->w) window_center = (Form.client_width - gapp.image->w) / 2; else window_center = 0; |
233 | if (Form.client_width > gapp.image->w) window_center = (Form.client_width - gapp.image->w) / 2; else window_center = 0; |
233 | if (gapp.image->h < Form.client_height - TOOLBAR_HEIGHT) draw_h = gapp.image->h - gapp.pany; else draw_h = Form.client_height - TOOLBAR_HEIGHT; |
234 | if (gapp.image->h < Form.client_height - TOOLBAR_HEIGHT) draw_h = gapp.image->h - gapp.pany; else draw_h = Form.client_height - TOOLBAR_HEIGHT; |
234 | if (gapp.image->w < Form.client_width) |
235 | if (gapp.image->w < Form.client_width) |
235 | { |
236 | { |
236 | __menuet__bar(0, TOOLBAR_HEIGHT, window_center-1, Form.client_height - TOOLBAR_HEIGHT, DOCUMENT_BG); |
237 | kol_paint_bar(0, TOOLBAR_HEIGHT, window_center-1, Form.client_height - TOOLBAR_HEIGHT, DOCUMENT_BG); |
237 | __menuet__bar(window_center-1, TOOLBAR_HEIGHT, 1, draw_h, DOCUMENT_BORDER); |
238 | kol_paint_bar(window_center-1, TOOLBAR_HEIGHT, 1, draw_h, DOCUMENT_BORDER); |
238 | __menuet__bar(window_center + gapp.image->w, TOOLBAR_HEIGHT, 1, draw_h, DOCUMENT_BORDER); |
239 | kol_paint_bar(window_center + gapp.image->w, TOOLBAR_HEIGHT, 1, draw_h, DOCUMENT_BORDER); |
239 | __menuet__bar(window_center + gapp.image->w+1, TOOLBAR_HEIGHT, Form.client_width - window_center - gapp.image->w - 1, Form.client_height - TOOLBAR_HEIGHT, DOCUMENT_BG); |
240 | kol_paint_bar(window_center + gapp.image->w+1, TOOLBAR_HEIGHT, Form.client_width - window_center - gapp.image->w - 1, Form.client_height - TOOLBAR_HEIGHT, DOCUMENT_BG); |
240 | } |
241 | } |
241 | if (gapp.image->w < Form.client_width) |
242 | if (gapp.image->w < Form.client_width) |
242 | { |
243 | { |
243 | draw_w = gapp.image->w + 2; |
244 | draw_w = gapp.image->w + 2; |
244 | } |
245 | } |
245 | else |
246 | else |
246 | { |
247 | { |
247 | window_center = 1; |
248 | window_center = 1; |
248 | draw_w = Form.client_width; |
249 | draw_w = Form.client_width; |
249 | } |
250 | } |
250 | __menuet__bar(window_center - 1, gapp.image->h - gapp.pany + TOOLBAR_HEIGHT, draw_w, 1, DOCUMENT_BORDER); |
251 | kol_paint_bar(window_center - 1, gapp.image->h - gapp.pany + TOOLBAR_HEIGHT, draw_w, 1, DOCUMENT_BORDER); |
251 | __menuet__bar(window_center - 1, gapp.image->h - gapp.pany + TOOLBAR_HEIGHT + 1, draw_w, Form.client_height - gapp.image->h - TOOLBAR_HEIGHT + gapp.pany - 1, DOCUMENT_BG); |
252 | kol_paint_bar(window_center - 1, gapp.image->h - gapp.pany + TOOLBAR_HEIGHT + 1, draw_w, Form.client_height - gapp.image->h - TOOLBAR_HEIGHT + gapp.pany - 1, DOCUMENT_BG); |
252 | } |
253 | } |
Line 253... | Line 254... | ||
253 | 254 | ||
254 | 255 | ||
255 | 256 | ||
256 | int main (void) |
257 | int main (void) |
257 | { |
258 | { |
- | 259 | char ii, mouse_wheels_state; |
|
Line 258... | Line 260... | ||
258 | char ii, mouse_wheels_state; |
260 | char* original_command_line = *(char**)0x1C; |
259 | char* original_command_line = *(char**)0x1C; |
261 | kol_board_puts(original_command_line); |
260 | __menuet__debug_out(original_command_line); |
262 | kol_board_puts("\n"); |
261 | 263 | ||
262 | char buf[128]; |
264 | char buf[128]; |
263 | int resolution = 72; |
265 | int resolution = 72; |
264 | int pageno = 1; |
266 | int pageno = 1; |
265 | fz_accelerate(); |
267 | fz_accelerate(); |
266 | __menuet__debug_out("PDF init\n"); |
268 | kol_board_puts("PDF init\n"); |
267 | pdfapp_init(&gapp); |
269 | pdfapp_init(&gapp); |
268 | gapp.scrw = 600; |
270 | gapp.scrw = 600; |
269 | gapp.scrh = 400; |
271 | gapp.scrh = 400; |
270 | gapp.resolution = resolution; |
272 | gapp.resolution = resolution; |
271 | gapp.pageno = pageno; |
273 | gapp.pageno = pageno; |
Line 272... | Line -... | ||
272 | __menuet__debug_out("PDF Open\n"); |
- | |
273 | pdfapp_open(&gapp, original_command_line, 0, 0); |
274 | kol_board_puts("PDF Open\n"); |
Line 274... | Line 275... | ||
274 | __menuet__debug_out("PDF Opened\n"); |
275 | pdfapp_open(&gapp, original_command_line, 0, 0); |
275 | wintitle(&gapp, 0); |
276 | kol_board_puts("PDF Opened\n"); |
276 | 277 | wintitle(&gapp, 0); |
|
Line 287... | Line 288... | ||
287 | switch(__menuet__wait_for_event()) |
288 | switch(__menuet__wait_for_event()) |
288 | { |
289 | { |
289 | case evReDraw: |
290 | case evReDraw: |
290 | // gapp.shrinkwrap = 2; |
291 | // gapp.shrinkwrap = 2; |
291 | __menuet__window_redraw(1); |
292 | __menuet__window_redraw(1); |
292 | __menuet__define_window(screen_max_x / 2 - 350, screen_max_y / 2 - 300, 700, 600, 0x73000000, 0x800000FF, Title); |
293 | __menuet__define_window(screen_max_x / 2 - 350-50+kos_random(50), |
- | 294 | screen_max_y / 2 - 300-50+kos_random(50), |
|
- | 295 | 700, 600, 0x73000000, 0x800000FF, Title); |
|
293 | __menuet__window_redraw(2); |
296 | __menuet__window_redraw(2); |
294 | __menuet__get_process_table(&Form, PID_WHOAMI); |
297 | __menuet__get_process_table(&Form, PID_WHOAMI); |
295 | if (Form.window_state > 2) continue; //fix rolled up |
298 | if (Form.window_state > 2) continue; //fix rolled up |
296 | Form.client_width++; //fix for Menuet kernel bug |
299 | Form.client_width++; //fix for Menuet kernel bug |
297 | Form.client_height++; //fix for Menuet kernel bug |
300 | Form.client_height++; //fix for Menuet kernel bug |
Line 320... | Line 323... | ||
320 | break; |
323 | break; |
Line 321... | Line 324... | ||
321 | 324 | ||
322 | case evButton: |
325 | case evButton: |
323 | butt = __menuet__get_button_id(); |
326 | butt = __menuet__get_button_id(); |
324 | if(butt==1) __menuet__sys_exit(); |
327 | if(butt==1) __menuet__sys_exit(); |
325 | if(butt==10) ;//mag open file |
328 | if(butt==10) RunApp("/sys/lod", "*pdf* /kolibrios/media/updf"); |
326 | if(butt==11) PageZoomOut(); //magnify - |
329 | if(butt==11) PageZoomOut(); //magnify - |
327 | if(butt==12) PageZoomIn(); //magnify + |
330 | if(butt==12) PageZoomIn(); //magnify + |
328 | if(butt==13) //show help |
331 | if(butt==13) //show help |
329 | { |
332 | { |
330 | __menuet__bar(0, TOOLBAR_HEIGHT, Form.client_width, Form.client_height - TOOLBAR_HEIGHT, 0xF2F2F2); |
333 | kol_paint_bar(0, TOOLBAR_HEIGHT, Form.client_width, Form.client_height - TOOLBAR_HEIGHT, 0xF2F2F2); |
331 | __menuet__write_text(20, TOOLBAR_HEIGHT + 20 , 0x90000000, "uPDF for KolibriOS v1.21", 0); |
334 | __menuet__write_text(20, TOOLBAR_HEIGHT + 20 , 0x90000000, "uPDF for KolibriOS v1.2", 0); |
332 | __menuet__write_text(21, TOOLBAR_HEIGHT + 20 , 0x90000000, "uPDF for KolibriOS v1.21", 0); |
335 | __menuet__write_text(21, TOOLBAR_HEIGHT + 20 , 0x90000000, "uPDF for KolibriOS v1.2", 0); |
333 | for (ii=0; help[ii]!=0; ii++) { |
336 | for (ii=0; help[ii]!=0; ii++) { |
334 | __menuet__write_text(20, TOOLBAR_HEIGHT + 60 + ii * 15, 0x80000000, help[ii], 0); |
337 | __menuet__write_text(20, TOOLBAR_HEIGHT + 60 + ii * 15, 0x80000000, help[ii], 0); |
335 | } |
338 | } |
336 | } |
339 | } |
Line 346... | Line 349... | ||
346 | { |
349 | { |
347 | if (mouse_wheels_state==1) { PageScrollDown(); PageScrollDown(); } |
350 | if (mouse_wheels_state==1) { PageScrollDown(); PageScrollDown(); } |
348 | if (mouse_wheels_state==-1) { PageScrollUp(); PageScrollUp(); } |
351 | if (mouse_wheels_state==-1) { PageScrollUp(); PageScrollUp(); } |
349 | } |
352 | } |
350 | //sprintf (debugstr, "mouse_wheels_state: %d \n", mouse_wheels_state); |
353 | //sprintf (debugstr, "mouse_wheels_state: %d \n", mouse_wheels_state); |
351 | //__menuet__debug_out(debugstr); |
354 | //kol_board_puts(debugstr); |
352 | //pdfapp_onmouse(&gapp, int x, int y, int btn, int modifiers, int state) |
355 | //pdfapp_onmouse(&gapp, int x, int y, int btn, int modifiers, int state) |
353 | break; |
356 | break; |
354 | } |
357 | } |
355 | } |
358 | } |
356 | } |
359 | } |
Line 387... | Line 390... | ||
387 | return; |
390 | return; |
388 | } |
391 | } |
Line 389... | Line 392... | ||
389 | 392 | ||
390 | itoa(new_page_number, label_new_page, 10); |
393 | itoa(new_page_number, label_new_page, 10); |
391 | strcat(label_new_page, "_"); |
394 | strcat(label_new_page, "_"); |
392 | __menuet__bar(show_area_x, 6, show_area_w, 22, 0xFDF88E); |
395 | kol_paint_bar(show_area_x, 6, show_area_w, 22, 0xFDF88E); |
Line 393... | Line 396... | ||
393 | __menuet__write_text(show_area_x + show_area_w/2 - strlen(label_new_page)*6/2, 14, 0x000000, label_new_page, strlen(label_new_page)); |
396 | __menuet__write_text(show_area_x + show_area_w/2 - strlen(label_new_page)*6/2, 14, 0x000000, label_new_page, strlen(label_new_page)); |
394 | 397 | ||
Line 403... | Line 406... | ||
403 | } |
406 | } |
Line 404... | Line 407... | ||
404 | 407 | ||
405 | void DrawPagination(void) |
408 | void DrawPagination(void) |
406 | { |
409 | { |
407 | char pages_display[12]; |
410 | char pages_display[12]; |
408 | __menuet__bar(show_area_x, 6, show_area_w, 22, 0xF4F4F4); |
411 | kol_paint_bar(show_area_x, 6, show_area_w, 22, 0xF4F4F4); |
409 | sprintf (pages_display, "%d/%d", gapp.pageno, gapp.pagecount); |
412 | sprintf (pages_display, "%d/%d", gapp.pageno, gapp.pagecount); |
410 | __menuet__write_text(show_area_x + show_area_w/2 - strlen(pages_display)*6/2, 14, 0x000000, pages_display, strlen(pages_display)); |
413 | __menuet__write_text(show_area_x + show_area_w/2 - strlen(pages_display)*6/2, 14, 0x000000, pages_display, strlen(pages_display)); |
Line 411... | Line 414... | ||
411 | } |
414 | } |
412 | 415 | ||
413 | 416 | ||
414 | 417 | ||
415 | 418 | ||
416 | void DrawWindow(void) |
419 | void DrawWindow(void) |
417 | { |
420 | { |
418 | __menuet__bar(0, 0, Form.client_width, TOOLBAR_HEIGHT - 1, 0xe1e1e1); // bar on the top (buttons holder) |
421 | kol_paint_bar(0, 0, Form.client_width, TOOLBAR_HEIGHT - 1, 0xe1e1e1); // bar on the top (buttons holder) |
419 | __menuet__bar(0, TOOLBAR_HEIGHT - 1, Form.client_width, 1, 0x7F7F7F); |
422 | kol_paint_bar(0, TOOLBAR_HEIGHT - 1, Form.client_width, 1, 0x7F7F7F); |
420 | DrawToolbarButton(8,0); //open_folder |
423 | DrawToolbarButton(8,0); //open_folder |
421 | DrawToolbarButton(42,1); //magnify - |
424 | DrawToolbarButton(42,1); //magnify - |
422 | DrawToolbarButton(67,2); //magnify + |
425 | DrawToolbarButton(67,2); //magnify + |
423 | DrawToolbarButton(101,6); //rotate left |
426 | DrawToolbarButton(101,6); //rotate left |
424 | DrawToolbarButton(126,7); //rotate right |
427 | DrawToolbarButton(126,7); //rotate right |
425 | DrawToolbarButton(Form.client_width - 160,3); //show help |
428 | DrawToolbarButton(Form.client_width - 160,3); //show help |
426 | show_area_x = Form.client_width - show_area_w - 34; |
429 | show_area_x = Form.client_width - show_area_w - 34; |
427 | DrawToolbarButton(show_area_x - 26,4); //prev page |
430 | DrawToolbarButton(show_area_x - 26,4); //prev page |
428 | DrawToolbarButton(show_area_x + show_area_w,5); //nex page |
431 | DrawToolbarButton(show_area_x + show_area_w,5); //nex page |
429 | __menuet__make_button(show_area_x-1, 5, show_area_w+1, 23, 20 + BT_HIDE, 0xA4A4A4); |
432 | __menuet__make_button(show_area_x-1, 5, show_area_w+1, 23, 20 + BT_HIDE, 0xA4A4A4); |
Line 430... | Line 433... | ||
430 | __menuet__bar(show_area_x, 5, show_area_w, 1, 0xA4A4A4); |
433 | kol_paint_bar(show_area_x, 5, show_area_w, 1, 0xA4A4A4); |
Line 470... | Line 473... | ||
470 | pdfapp_onkey(&gapp, ','); |
473 | pdfapp_onkey(&gapp, ','); |
471 | do_not_blit = 0; |
474 | do_not_blit = 0; |
472 | gapp.pany = gapp.image->h - SCROLL_H - Form.client_height + TOOLBAR_HEIGHT; |
475 | gapp.pany = gapp.image->h - SCROLL_H - Form.client_height + TOOLBAR_HEIGHT; |
473 | if (gapp.pany < 0) gapp.pany = 0; |
476 | if (gapp.pany < 0) gapp.pany = 0; |
474 | //sprintf (debugstr, "gapp.pany: %d \n", gapp.pany); |
477 | //sprintf (debugstr, "gapp.pany: %d \n", gapp.pany); |
475 | //__menuet__debug_out(debugstr); |
478 | //kol_board_puts(debugstr); |
476 | winblit(&gapp); |
479 | winblit(&gapp); |
477 | } |
480 | } |
478 | } |
481 | } |
Line -... | Line 482... | ||
- | 482 | ||
- | 483 | void RunApp(char app[], char param[]) |
|
- | 484 | { |
|
- | 485 | kol_struct70 r; |
|
- | 486 | r.p00 = 7; |
|
- | 487 | r.p04 = 0; |
|
- | 488 | r.p08 = param; |
|
- | 489 | r.p12 = 0; |
|
- | 490 | r.p16 = 0; |
|
- | 491 | r.p20 = 0; |
|
- | 492 | r.p21 = app; |
|
- | 493 | kol_file_70(&r); |
|
- | 494 | } |
|
Line 479... | Line 495... | ||
479 | 495 | ||
480 | 496 | ||
481 | void PageZoomIn(void) |
497 | void PageZoomIn(void) |
482 | { |
498 | { |