forked from KolibriOS/kolibrios
uPDF:
- Fixed a bug with floating icons; - Removed include kos32sys.h. git-svn-id: svn://kolibrios.org@9960 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
43e723374e
commit
59b6eb6013
@ -12,7 +12,7 @@ LIBPATH = -L $(SDK_DIR)/lib -L /home/autobuild/tools/win32/mingw32/lib -L ../lib
|
|||||||
APPS_SRC := kolibri.c kos_main.c pdfapp.c
|
APPS_SRC := kolibri.c kos_main.c pdfapp.c
|
||||||
|
|
||||||
default: $(patsubst %.c,%.o,$(APPS_SRC))
|
default: $(patsubst %.c,%.o,$(APPS_SRC))
|
||||||
$(LD) $(LDFLAGS) $(LIBPATH) --subsystem native -o updf kolibri.o pdfapp.o kos_main.o -lmupdf -lfitz -lgcc -lfitz -ldraw -ljpeg -ljbig2dec -lfreetype -lopenjpeg -lz -lc.dll
|
$(LD) $(LDFLAGS) $(LIBPATH) --subsystem native -o updf kolibri.o pdfapp.o kos_main.o -lmupdf -lfitz -lgcc -lfitz -ldraw -ljpeg -ljbig2dec -lfreetype -lopenjpeg -lz.dll -lc.dll
|
||||||
objcopy updf -O binary
|
objcopy updf -O binary
|
||||||
|
|
||||||
|
|
||||||
|
@ -27,6 +27,12 @@ void kol_wnd_define(unsigned x, unsigned y, unsigned w, unsigned h, unsigned cs,
|
|||||||
asm volatile ("int $0x40"::"a"(0), "b"(x*65536+w), "c"(y*65536+h), "d"(cs), "D"(t), "S"(b) );
|
asm volatile ("int $0x40"::"a"(0), "b"(x*65536+w), "c"(y*65536+h), "d"(cs), "D"(t), "S"(b) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void kol_wnd_change(int new_x, int new_y, int new_w, int new_h)
|
||||||
|
{
|
||||||
|
asm volatile("int $0x40" ::"a"(67), "b"(new_x), "c"(new_y), "d"(new_w),"S"(new_h));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void kol_event_mask(unsigned e)
|
void kol_event_mask(unsigned e)
|
||||||
{
|
{
|
||||||
asm volatile ("int $0x40"::"a"(40), "b"(e));
|
asm volatile ("int $0x40"::"a"(40), "b"(e));
|
||||||
@ -137,7 +143,12 @@ asm volatile ("int $0x40"::"a"(66), "b"(2));
|
|||||||
|
|
||||||
unsigned kol_btn_get()
|
unsigned kol_btn_get()
|
||||||
{
|
{
|
||||||
asm volatile ("int $0x40"::"a"(17));
|
unsigned val;
|
||||||
|
asm volatile(
|
||||||
|
"int $0x40"
|
||||||
|
: "=a"(val)
|
||||||
|
: "a"(17));
|
||||||
|
return val >> 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -93,11 +93,32 @@ void *data;
|
|||||||
} kol_struct_import;
|
} kol_struct_import;
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
||||||
|
#pragma pack(push, 1)
|
||||||
|
struct proc_info
|
||||||
|
{
|
||||||
|
unsigned long cpu_usage;
|
||||||
|
unsigned short pos_in_stack;
|
||||||
|
unsigned short slot;
|
||||||
|
unsigned short reserved2;
|
||||||
|
char name[12];
|
||||||
|
unsigned long address;
|
||||||
|
unsigned long memory_usage;
|
||||||
|
unsigned long ID;
|
||||||
|
unsigned long left,top;
|
||||||
|
unsigned long width,height;
|
||||||
|
unsigned short thread_state;
|
||||||
|
unsigned short reserved3;
|
||||||
|
unsigned long cleft, ctop, cwidth, cheight;
|
||||||
|
unsigned char window_state;
|
||||||
|
unsigned char reserved4[1024-71];
|
||||||
|
};
|
||||||
|
#pragma pack(pop)
|
||||||
|
|
||||||
void kol_exit();
|
void kol_exit();
|
||||||
void kol_sleep(unsigned d);
|
void kol_sleep(unsigned d);
|
||||||
void kol_wnd_define(unsigned x, unsigned y, unsigned w, unsigned h, unsigned cs, unsigned b, char *t);
|
void kol_wnd_define(unsigned x, unsigned y, unsigned w, unsigned h, unsigned cs, unsigned b, char *t);
|
||||||
void kol_wnd_caption(char *s);
|
void kol_wnd_caption(char *s);
|
||||||
|
void kol_wnd_change(int new_x, int new_y, int new_w, int new_h);
|
||||||
void kol_event_mask(unsigned e);
|
void kol_event_mask(unsigned e);
|
||||||
unsigned kol_event_wait();
|
unsigned kol_event_wait();
|
||||||
unsigned kol_event_wait_time(unsigned time);
|
unsigned kol_event_wait_time(unsigned time);
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
/*==== INCLUDES ====*/
|
/*==== INCLUDES ====*/
|
||||||
|
|
||||||
#include <kos32sys.h>
|
|
||||||
#include "fitz.h"
|
#include "fitz.h"
|
||||||
#include "mupdf.h"
|
#include "mupdf.h"
|
||||||
#include "pdfapp.h"
|
#include "pdfapp.h"
|
||||||
@ -132,10 +131,10 @@ void winblit(pdfapp_t *app)
|
|||||||
|
|
||||||
gapp.panx = 0;
|
gapp.panx = 0;
|
||||||
|
|
||||||
kos_blit(window_center + Form.cleft,
|
kos_blit(window_center + Form.cleft,
|
||||||
Form.ctop + TOOLBAR_HEIGHT,
|
Form.ctop + TOOLBAR_HEIGHT,
|
||||||
Form.cwidth,
|
Form.cwidth,
|
||||||
Form.cheight - TOOLBAR_HEIGHT,
|
Form.cheight - TOOLBAR_HEIGHT,
|
||||||
gapp.panx,
|
gapp.panx,
|
||||||
gapp.pany,
|
gapp.pany,
|
||||||
gapp.image->w,
|
gapp.image->w,
|
||||||
@ -172,7 +171,7 @@ void DrawPageSides(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
kol_paint_bar(window_center - 1, gapp.image->h - gapp.pany + TOOLBAR_HEIGHT, draw_w, 1, DOCUMENT_BORDER);
|
kol_paint_bar(window_center - 1, gapp.image->h - gapp.pany + TOOLBAR_HEIGHT, draw_w, 1, DOCUMENT_BORDER);
|
||||||
kol_paint_bar(window_center - 1, gapp.image->h - gapp.pany + TOOLBAR_HEIGHT + 1,
|
kol_paint_bar(window_center - 1, gapp.image->h - gapp.pany + TOOLBAR_HEIGHT + 1,
|
||||||
draw_w, Form.cheight - gapp.image->h - TOOLBAR_HEIGHT + gapp.pany - 1, DOCUMENT_BG);
|
draw_w, Form.cheight - gapp.image->h - TOOLBAR_HEIGHT + gapp.pany - 1, DOCUMENT_BG);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -201,7 +200,7 @@ void HandleNewPageNumber(unsigned char key)
|
|||||||
ApplyNewPageNumber();
|
ApplyNewPageNumber();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (key==ASCII_KEY_ESC)
|
if (key==ASCII_KEY_ESC)
|
||||||
{
|
{
|
||||||
key_mode_enter_page_number = 0;
|
key_mode_enter_page_number = 0;
|
||||||
DrawMainWindow();
|
DrawMainWindow();
|
||||||
@ -234,7 +233,7 @@ void DrawPagination(void)
|
|||||||
void DrawToolbarButton(int x, char image_id)
|
void DrawToolbarButton(int x, char image_id)
|
||||||
{
|
{
|
||||||
kol_btn_define(x, 5, 26-1, 24-1, 10 + image_id + BT_HIDE, 0);
|
kol_btn_define(x, 5, 26-1, 24-1, 10 + image_id + BT_HIDE, 0);
|
||||||
draw_bitmap(image_id * 24 * 26 * 3 + toolbar_image, x, 5, 26, 24);
|
kol_paint_image(x, 5, 26, 24, image_id * 24 * 26 * 3 + toolbar_image);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DrawMainWindow(void)
|
void DrawMainWindow(void)
|
||||||
@ -376,22 +375,22 @@ int main (int argc, char* argv[])
|
|||||||
|
|
||||||
for(;;)
|
for(;;)
|
||||||
{
|
{
|
||||||
switch(get_os_event())
|
switch(kol_event_wait())
|
||||||
{
|
{
|
||||||
case evReDraw:
|
case evReDraw:
|
||||||
// gapp.shrinkwrap = 2;
|
// gapp.shrinkwrap = 2;
|
||||||
BeginDraw();
|
kol_paint_start();
|
||||||
kol_wnd_define(screen_max_x / 2 - 350-50+kos_random(50),
|
kol_wnd_define(screen_max_x / 2 - 350-50+kos_random(50),
|
||||||
screen_max_y / 2 - 300-50+kos_random(50),
|
screen_max_y / 2 - 300-50+kos_random(50),
|
||||||
700, 600, 0x73000000, 0x800000FF, Title);
|
700, 600, 0x73000000, 0x800000FF, Title);
|
||||||
EndDraw();
|
kol_paint_end();
|
||||||
get_proc_info((char*)&Form);
|
kol_process_info(-1, (char*)&Form);
|
||||||
|
|
||||||
if (Form.window_state > 2) continue; // if Rolled-up
|
if (Form.window_state & 4) continue; // if Rolled-up
|
||||||
|
|
||||||
// Minimal size (700x600)
|
// Minimal size (700x600)
|
||||||
if (Form.width < 700) sys_change_window(OLD, OLD, 700, OLD);
|
if (Form.width < 700) kol_wnd_change(-1, -1, 700, -1);
|
||||||
if (Form.height < 600) sys_change_window(OLD, OLD, OLD, 600);
|
if (Form.height < 600) kol_wnd_change(-1, -1, -1, 600);
|
||||||
|
|
||||||
DrawMainWindow();
|
DrawMainWindow();
|
||||||
break;
|
break;
|
||||||
@ -418,14 +417,14 @@ int main (int argc, char* argv[])
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case evButton:
|
case evButton:
|
||||||
butt = get_os_button();
|
butt = kol_btn_get();
|
||||||
if(butt==1) exit(0);
|
if(butt==1) exit(0);
|
||||||
if(butt==10) RunOpenApp(argv[0]);
|
if(butt==10) RunOpenApp(argv[0]);
|
||||||
if(butt==11) PageZoomOut(); //magnify -
|
if(butt==11) PageZoomOut(); //magnify -
|
||||||
if(butt==12) PageZoomIn(); //magnify +
|
if(butt==12) PageZoomIn(); //magnify +
|
||||||
if(butt==13) //show help
|
if(butt==13) //show help
|
||||||
{
|
{
|
||||||
kol_paint_bar(0, TOOLBAR_HEIGHT, Form.cwidth, Form.cheight - TOOLBAR_HEIGHT, 0xF2F2F2);
|
kol_paint_bar(0, TOOLBAR_HEIGHT, Form.cwidth, Form.cheight - TOOLBAR_HEIGHT, 0xF2F2F2);
|
||||||
kos_text(20, TOOLBAR_HEIGHT + 20 , 0x90000000, "uPDF for KolibriOS v1.2", 0);
|
kos_text(20, TOOLBAR_HEIGHT + 20 , 0x90000000, "uPDF for KolibriOS v1.2", 0);
|
||||||
kos_text(21, TOOLBAR_HEIGHT + 20 , 0x90000000, "uPDF for KolibriOS v1.2", 0);
|
kos_text(21, TOOLBAR_HEIGHT + 20 , 0x90000000, "uPDF for KolibriOS v1.2", 0);
|
||||||
for (ii=0; help[ii]!=0; ii++) {
|
for (ii=0; help[ii]!=0; ii++) {
|
||||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user