Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 8425 → Rev 8426

/programs/develop/ktcc/trunk/lib/proc_lib/Makefile
0,0 → 1,7
all:
fasm loadproclib.asm
ar -csr libdialog.a loadproclib.o
install:
mv libdialog.a ../../bin/lib
clean:
rm -f *.o *.a
/programs/develop/ktcc/trunk/lib/proc_lib/loadproclib.asm
0,0 → 1,39
 
format elf
use32 ; Tell compiler to use 32 bit instructions
 
section '.text' executable ; Keep this line before includes or GCC messes up call addresses
 
include '../../../../../proc32.inc'
include '../../../../../macros.inc'
purge section,mov,add,sub
include '../../../../../dll.inc'
public init_proclib as 'kolibri_dialog_init'
;;; Returns 0 on success. -1 on failure.
 
proc init_proclib
pusha
mcall 68,11
stdcall dll.Load, @IMPORT
popa
ret
endp
 
section '.data' writeable
 
@IMPORT:
library lib_boxlib, 'proc_lib.obj'
 
import lib_boxlib, \
OpenDialog_init, 'OpenDialog_init' , \
OpenDialog_start, 'OpenDialog_start' , \
ColorDialog_init, 'ColorDialog_init' , \
ColorDialog_start, 'ColorDialog_start'
public OpenDialog_init as 'OpenDialog_init'
public OpenDialog_start as 'OpenDialog_start'
 
public ColorDialog_init as 'ColorDialog_init'
public ColorDialog_start as 'ColorDialog_start'
/programs/develop/ktcc/trunk/libc/include/clayer/dialog.h
0,0 → 1,126
#ifndef KOLIBRI_DIALOG_H
#define KOLIBRI_DIALOG_H
 
#include <stdlib.h>
#define NOT_SUCCESS 0
#define SUCCESS 1
 
char sz_com_area_name[] = "FFFFFFFF_open_dialog";
char sz_dir_default_path[] = "/rd/1";
char sz_start_path[] = "/rd/1/File managers/opendial";
 
char cd_com_area_name[] = "FFFFFFFF_color_dialog";
char cd_start_path[] = "/rd/1/colrdial";
 
enum open_dialog_mode {
OPEN,
SAVE,
SELECT
};
 
typedef struct {
unsigned int size;
unsigned char end;
}od_filter __attribute__ ((__packed__));
 
typedef struct {
unsigned int mode;
char* procinfo;
char* com_area_name;
unsigned int com_area;
char* opendir_path;
char* dir_default_path;
char* start_path;
void (*draw_window)();
unsigned int status;
char* openfile_path;
char* filename_area;
od_filter* filter_area;
unsigned short x_size;
unsigned short x_start;
unsigned short y_size;
unsigned short y_start;
}open_dialog __attribute__ ((__packed__));
 
 
typedef struct{
unsigned int type;
char* procinfo;
char* com_area_name;
unsigned int com_area;
char* start_path;
void (*draw_window)(void);
unsigned int status;
unsigned short x_size;
unsigned short x_start;
unsigned short y_size;
unsigned short y_start;
unsigned int color_type;
unsigned int color;
}color_dialog __attribute__ ((__packed__));
 
void fake_on_redraw(void) {}
 
open_dialog* kolibri_new_open_dialog(unsigned int mode, unsigned short tlx, unsigned short tly, unsigned short x_size, unsigned short y_size)
{
open_dialog *new_opendialog = (open_dialog *)malloc(sizeof(open_dialog));
od_filter *new_od_filter = (od_filter *)malloc(sizeof(od_filter));
char *plugin_path = (char *)calloc(4096, sizeof(char));
char *openfile_path = (char *)calloc(4096, sizeof(char));
char *proc_info = (char *)calloc(1024, sizeof(char));
char *filename_area = (char *)calloc(256, sizeof(char));
 
new_od_filter -> size = 0;
new_od_filter -> end = 0;
 
new_opendialog -> mode = mode;
new_opendialog -> procinfo = proc_info;
new_opendialog -> com_area_name = sz_com_area_name;
new_opendialog -> com_area = 0;
new_opendialog -> opendir_path = plugin_path;
new_opendialog -> dir_default_path = sz_dir_default_path;
new_opendialog -> start_path = sz_start_path;
new_opendialog -> draw_window = &fake_on_redraw;
new_opendialog -> status = 0;
new_opendialog -> openfile_path = openfile_path;
new_opendialog -> filename_area = filename_area;
new_opendialog -> filter_area = new_od_filter;
new_opendialog -> x_size = x_size;
new_opendialog -> x_start = tlx;
new_opendialog -> y_size = y_size;
new_opendialog -> y_start = tly;
return new_opendialog;
}
 
void cd_fake_on_redraw(void) {}
 
color_dialog* kolibri_new_color_dialog(unsigned int type, unsigned short tlx, unsigned short tly, unsigned short x_size, unsigned short y_size)
{
color_dialog *new_colordialog = (color_dialog *)malloc(sizeof(color_dialog));
char *proc_info = (char *)calloc(1024, sizeof(char));
 
new_colordialog -> type = type;
new_colordialog -> procinfo = proc_info;
new_colordialog -> com_area_name = cd_com_area_name;
new_colordialog -> com_area = 0;
new_colordialog -> start_path = cd_start_path;
new_colordialog -> draw_window = &cd_fake_on_redraw;
new_colordialog -> status = 0;
new_colordialog -> x_size = x_size;
new_colordialog -> x_start = tlx;
new_colordialog -> y_size = y_size;
new_colordialog -> y_start = tly;
new_colordialog -> color_type = 0;
new_colordialog -> color = 0;
return new_colordialog;
}
 
extern void kolibri_dialog_init();
 
extern void (*OpenDialog_init __attribute__((__stdcall__)))(open_dialog *);
extern void (*OpenDialog_start __attribute__((__stdcall__)))(open_dialog *);
 
extern void (*ColorDialog_init __attribute__((__stdcall__)))(color_dialog *);
extern void (*ColorDialog_start __attribute__((__stdcall__)))(color_dialog *);
 
#endif
/programs/develop/ktcc/trunk/libc/include/kos32sys1.h
41,6 → 41,12
//Read/Write data as type (int char, etc.) at address "addr" with offset "offset". eg DATA(int, buff, 8);
#define DATA(type, addr, offset) *((type*)((uint8_t*)addr+offset))
typedef struct {
uint8_t blue;
uint8_t green;
uint8_t red;
}RGB;
typedef unsigned int color_t;
 
typedef union __attribute__((packed)) pos_t
/programs/develop/ktcc/trunk/samples/console/console.c
File deleted
\ No newline at end of file
/programs/develop/ktcc/trunk/samples/Makefile
1,24 → 1,27
CC=../bin/kos32-tcc
CFLAGS= -I ../libc/include
 
all:
../bin/kos32-tcc asm_ex.c -lck -o asm_ex.kex -I ../libc/include
../bin/kos32-tcc consoleio.c -lck -o consoleio.kex -I ../libc/include
../bin/kos32-tcc files.c -lck -o files.kex -I ../libc/include
../bin/kos32-tcc winbasics.c -lck -o winbasics.kex -I ../libc/include
../bin/kos32-tcc dynamic.c -lck -lhttp -linputbox -o dynamic.kex -I ../libc/include
../bin/kos32-tcc load_coff.c -o load_coff.kex -lck -I ../libc/include
../bin/kos32-tcc clayer/msgbox.c -lck -lmsgbox -o clayer/msgbox.kex -I ../libc/include
../bin/kos32-tcc graphics.c -lck -lgb -o graphics.kex -I ../libc/include
../bin/kos32-tcc clayer/rasterworks.c -lck -lrasterworks -o clayer/rasterworks.kex -I ../libc/include
../bin/kos32-tcc clayer/boxlib.c -lck -lbox -o clayer/boxlib.kex -I ../libc/include
../bin/kos32-tcc clayer/libimg.c -lck -limg -o clayer/libimg.kex -I ../libc/include
../bin/kos32-tcc console/console.c -lck -limg -o console/console.kex -I ../libc/include
../bin/kos32-tcc dir_example.c -lck -o dir_example.kex -I ../libc/include
../bin/kos32-tcc net/tcpsrv_demo.c -lck -o net/tcpsrv_demo.kex -I ../libc/include
../bin/kos32-tcc net/nslookup.c -lck -lnetwork -o net/nslookup.kex -I ../libc/include
../bin/kos32-tcc getopt_ex.c -lck -o getopt_ex.kex -I ../libc/include
../bin/kos32-tcc tinygl/fps.c tinygl/gears.c -o gears.kex -I ../libc/include -ltinygl -lck
$(CC) $(CFLAGS) asm_ex.c -lck -o asm_ex.kex
$(CC) $(CFLAGS) consoleio.c -lck -o consoleio.kex
$(CC) $(CFLAGS) files.c -lck -o files.kex
$(CC) $(CFLAGS) winbasics.c -lck -o winbasics.kex
$(CC) $(CFLAGS) dynamic.c -lck -lhttp -linputbox -o dynamic.kex
$(CC) $(CFLAGS) load_coff.c -o load_coff.kex -lck
$(CC) $(CFLAGS) graphics.c -lck -lgb -o graphics.kex
$(CC) $(CFLAGS) dir_example.c -lck -o dir_example.kex
$(CC) $(CFLAGS) getopt_ex.c -lck -o getopt_ex.kex
 
$(CC) $(CFLAGS) clayer/msgbox.c -lck -lmsgbox -o clayer/msgbox.kex
$(CC) $(CFLAGS) clayer/rasterworks.c -lck -lrasterworks -o clayer/rasterworks.kex
$(CC) $(CFLAGS) clayer/boxlib.c -lck -lbox -o clayer/boxlib.kex
$(CC) $(CFLAGS) clayer/libimg.c -lck -limg -o clayer/libimg.kex
$(CC) $(CFLAGS) clayer/dialog.c -lck -ldialog -o clayer/dialog.kex
$(CC) $(CFLAGS) net/tcpsrv_demo.c -lck -o net/tcpsrv_demo.kex
$(CC) $(CFLAGS) net/nslookup.c -lck -lnetwork -o net/nslookup.kex
$(CC) $(CFLAGS) tinygl/fps.c tinygl/gears.c -o tinygl/gears.kex -ltinygl -lck
 
clean:
rm *.kex
rm clayer/*.kex
rm console/*.kex
rm net/*.kex
rm *.kex clayer/*.kex net/*.kex tinygl/*.kex
/programs/develop/ktcc/trunk/samples/build_all.sh
10,6 → 10,7
../tcc clayer/rasterworks.c -lck -lrasterworks -o /tmp0/1/rasterworks
../tcc clayer/boxlib.c -lck -lbox -o /tmp0/1/boxlib_ex
../tcc clayer/libimg.c -lck -limg -o /tmp0/1/libimg_ex
../tcc clayer/dialog.c -lck -ldialog -o /tmp0/1/dialog_ex
../tcc console/console.c -lck -limg -o /tmp0/1/console
../tcc dir_example.c -lck -o /tmp0/1/dir_example
../tcc net/tcpsrv_demo.c -lck -o /tmp0/1/tcpsrv_demo
/programs/develop/ktcc/trunk/samples/clayer/dialog.c
0,0 → 1,32
#include <kos32sys1.h>
#include <clayer/dialog.h>
#include <stdio.h>
 
int main()
{
kolibri_dialog_init(); // dialog init
open_dialog *dlg_open = kolibri_new_open_dialog(OPEN, 10, 10, 420, 320); // create opendialog struct
OpenDialog_init(dlg_open); // Initializing an open dialog box.
OpenDialog_start(dlg_open); // Show open dialog box
color_dialog *color_select = kolibri_new_color_dialog(SELECT, 10, 10,420,320); // create colordialog struct
ColorDialog_init(color_select); // Initializing an color dialog box.
ColorDialog_start(color_select); // Show color dialog
if(dlg_open->status == SUCCESS){
printf("File selected '%s'\n",dlg_open->openfile_path);
}else{
puts("No file selected!");
}
if(color_select->status == SUCCESS){
printf("Color selected: #%06X\n",color_select->color);
RGB color_rgb = (RGB)color_select->color;
printf("Red:%d Green:%d Blue:%d", color_rgb.red, color_rgb.green, color_rgb.blue);
}else{
puts("No color selected!");
}
free(dlg_open);
free(color_select);
}