doc generator prototype
This commit is contained in:
parent
73d3826a6a
commit
239985696f
|
@ -0,0 +1,145 @@
|
||||||
|
<html lang="en-US">
|
||||||
|
<head>
|
||||||
|
<title>4coder API Docs</title>
|
||||||
|
</head>
|
||||||
|
<body style='font-family:Arial;'>
|
||||||
|
<h1>4coder API</h1><h2>
|
||||||
|
§1 Introduction</h2>
|
||||||
|
<div style='margin-bottom: 5mm;'><i>Coming Soon</i></div><h2>
|
||||||
|
§2 Functions</h2>
|
||||||
|
<div>
|
||||||
|
exec_command
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
exec_system_command
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
directory_get_hot
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
get_4ed_path
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
file_exists
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
directory_cd
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
get_file_list
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
free_file_list
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
clipboard_post
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
clipboard_count
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
clipboard_index
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
get_buffer_first
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
get_buffer_next
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
get_buffer
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
get_buffer_by_name
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
buffer_seek
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
buffer_read_range
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
buffer_replace_range
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
buffer_set_setting
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
buffer_auto_indent
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
create_buffer
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
save_buffer
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
kill_buffer
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
get_view_first
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
get_view_next
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
get_view
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
get_active_view
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
view_compute_cursor
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
view_set_cursor
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
view_set_mark
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
view_set_highlight
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
view_set_buffer
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
view_post_fade
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
view_set_paste_rewrite_
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
view_get_paste_rewrite_
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
get_user_input
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
get_command_input
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
get_mouse_state
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
start_query_bar
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
end_query_bar
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
print_message
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
change_theme
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
change_font
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
set_theme_colors
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
get_theme_colors
|
||||||
|
</div>
|
||||||
|
</body></html>
|
|
@ -35,11 +35,10 @@
|
||||||
#define VIEW_GET_PASTE_REWRITE__SIG(n) int n(Application_Links *app, View_Summary *view)
|
#define VIEW_GET_PASTE_REWRITE__SIG(n) int n(Application_Links *app, View_Summary *view)
|
||||||
#define GET_USER_INPUT_SIG(n) User_Input n(Application_Links *app, unsigned int get_type, unsigned int abort_type)
|
#define GET_USER_INPUT_SIG(n) User_Input n(Application_Links *app, unsigned int get_type, unsigned int abort_type)
|
||||||
#define GET_COMMAND_INPUT_SIG(n) User_Input n(Application_Links *app)
|
#define GET_COMMAND_INPUT_SIG(n) User_Input n(Application_Links *app)
|
||||||
#define GET_EVENT_MESSAGE_SIG(n) Event_Message n(Application_Links *app)
|
|
||||||
#define GET_MOUSE_STATE_SIG(n) Mouse_State n(Application_Links *app)
|
#define GET_MOUSE_STATE_SIG(n) Mouse_State n(Application_Links *app)
|
||||||
#define START_QUERY_BAR_SIG(n) int n(Application_Links *app, Query_Bar *bar, unsigned int flags)
|
#define START_QUERY_BAR_SIG(n) int n(Application_Links *app, Query_Bar *bar, unsigned int flags)
|
||||||
#define END_QUERY_BAR_SIG(n) void n(Application_Links *app, Query_Bar *bar, unsigned int flags)
|
#define END_QUERY_BAR_SIG(n) void n(Application_Links *app, Query_Bar *bar, unsigned int flags)
|
||||||
#define PRINT_MESSAGE_SIG(n) void n(Application_Links *app, char *string, int len)
|
#define PRINT_MESSAGE_SIG(n) void n(Application_Links *app, char *str, int len)
|
||||||
#define CHANGE_THEME_SIG(n) void n(Application_Links *app, char *name, int len)
|
#define CHANGE_THEME_SIG(n) void n(Application_Links *app, char *name, int len)
|
||||||
#define CHANGE_FONT_SIG(n) void n(Application_Links *app, char *name, int len)
|
#define CHANGE_FONT_SIG(n) void n(Application_Links *app, char *name, int len)
|
||||||
#define SET_THEME_COLORS_SIG(n) void n(Application_Links *app, Theme_Color *colors, int count)
|
#define SET_THEME_COLORS_SIG(n) void n(Application_Links *app, Theme_Color *colors, int count)
|
||||||
|
@ -82,7 +81,6 @@ extern "C"{
|
||||||
typedef VIEW_GET_PASTE_REWRITE__SIG(View_Get_Paste_Rewrite__Function);
|
typedef VIEW_GET_PASTE_REWRITE__SIG(View_Get_Paste_Rewrite__Function);
|
||||||
typedef GET_USER_INPUT_SIG(Get_User_Input_Function);
|
typedef GET_USER_INPUT_SIG(Get_User_Input_Function);
|
||||||
typedef GET_COMMAND_INPUT_SIG(Get_Command_Input_Function);
|
typedef GET_COMMAND_INPUT_SIG(Get_Command_Input_Function);
|
||||||
typedef GET_EVENT_MESSAGE_SIG(Get_Event_Message_Function);
|
|
||||||
typedef GET_MOUSE_STATE_SIG(Get_Mouse_State_Function);
|
typedef GET_MOUSE_STATE_SIG(Get_Mouse_State_Function);
|
||||||
typedef START_QUERY_BAR_SIG(Start_Query_Bar_Function);
|
typedef START_QUERY_BAR_SIG(Start_Query_Bar_Function);
|
||||||
typedef END_QUERY_BAR_SIG(End_Query_Bar_Function);
|
typedef END_QUERY_BAR_SIG(End_Query_Bar_Function);
|
||||||
|
@ -132,7 +130,6 @@ struct Application_Links{
|
||||||
View_Get_Paste_Rewrite__Function *view_get_paste_rewrite_;
|
View_Get_Paste_Rewrite__Function *view_get_paste_rewrite_;
|
||||||
Get_User_Input_Function *get_user_input;
|
Get_User_Input_Function *get_user_input;
|
||||||
Get_Command_Input_Function *get_command_input;
|
Get_Command_Input_Function *get_command_input;
|
||||||
Get_Event_Message_Function *get_event_message;
|
|
||||||
Get_Mouse_State_Function *get_mouse_state;
|
Get_Mouse_State_Function *get_mouse_state;
|
||||||
Start_Query_Bar_Function *start_query_bar;
|
Start_Query_Bar_Function *start_query_bar;
|
||||||
End_Query_Bar_Function *end_query_bar;
|
End_Query_Bar_Function *end_query_bar;
|
||||||
|
@ -184,7 +181,6 @@ app_links->view_set_paste_rewrite_ = external_view_set_paste_rewrite_;\
|
||||||
app_links->view_get_paste_rewrite_ = external_view_get_paste_rewrite_;\
|
app_links->view_get_paste_rewrite_ = external_view_get_paste_rewrite_;\
|
||||||
app_links->get_user_input = external_get_user_input;\
|
app_links->get_user_input = external_get_user_input;\
|
||||||
app_links->get_command_input = external_get_command_input;\
|
app_links->get_command_input = external_get_command_input;\
|
||||||
app_links->get_event_message = external_get_event_message;\
|
|
||||||
app_links->get_mouse_state = external_get_mouse_state;\
|
app_links->get_mouse_state = external_get_mouse_state;\
|
||||||
app_links->start_query_bar = external_start_query_bar;\
|
app_links->start_query_bar = external_start_query_bar;\
|
||||||
app_links->end_query_bar = external_end_query_bar;\
|
app_links->end_query_bar = external_end_query_bar;\
|
||||||
|
|
|
@ -31,16 +31,16 @@ NOTES ON USE:
|
||||||
|
|
||||||
#ifndef FRED_STRING_STRUCT
|
#ifndef FRED_STRING_STRUCT
|
||||||
#define FRED_STRING_STRUCT
|
#define FRED_STRING_STRUCT
|
||||||
struct String{
|
typedef struct String{
|
||||||
char *str;
|
char *str;
|
||||||
int32_t size;
|
int32_t size;
|
||||||
int32_t memory_size;
|
int32_t memory_size;
|
||||||
};
|
} String;
|
||||||
|
|
||||||
struct Offset_String{
|
typedef struct Offset_String{
|
||||||
int32_t offset;
|
int32_t offset;
|
||||||
int32_t size;
|
int32_t size;
|
||||||
};
|
} Offset_String;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef fstr_bool
|
#ifndef fstr_bool
|
||||||
|
@ -187,25 +187,29 @@ FSTRING_INLINE fstr_bool terminate_with_null(String *str){
|
||||||
|
|
||||||
FSTRING_LINK fstr_bool append_padding(String *dest, char c, int32_t target_size);
|
FSTRING_LINK fstr_bool append_padding(String *dest, char c, int32_t target_size);
|
||||||
|
|
||||||
FSTRING_LINK int32_t compare(char *a, char *b);
|
FSTRING_LINK int32_t compare(char *a, char *b);
|
||||||
FSTRING_LINK int32_t compare(String a, char *b);
|
FSTRING_LINK int32_t compare(String a, char *b);
|
||||||
FSTRING_INLINE int32_t compare(char *a, String b) { return -compare(b,a); }
|
FSTRING_INLINE int32_t compare(char *a, String b) { return -compare(b,a); }
|
||||||
FSTRING_LINK int32_t compare(String a, String b);
|
FSTRING_LINK int32_t compare(String a, String b);
|
||||||
|
|
||||||
|
FSTRING_LINK int32_t reverse_seek_slash(String str);
|
||||||
|
FSTRING_LINK int32_t reverse_seek_slash(String str, int32_t start_pos);
|
||||||
|
FSTRING_INLINE String front_of_directory(String dir) { return substr(dir, reverse_seek_slash(dir) + 1); }
|
||||||
|
FSTRING_INLINE String path_of_directory(String dir) { return substr(dir, 0, reverse_seek_slash(dir) + 1); }
|
||||||
|
FSTRING_INLINE fstr_bool get_front_of_directory(String *dest, String dir) { return append_checked(dest, front_of_directory(dir)); }
|
||||||
|
FSTRING_INLINE fstr_bool get_path_of_directory(String *dest, String dir) { return append_checked(dest, path_of_directory(dir)); }
|
||||||
|
FSTRING_LINK fstr_bool set_last_folder(String *dir, char *folder_name, char slash);
|
||||||
|
FSTRING_LINK fstr_bool set_last_folder(String *dir, String folder_name, char slash);
|
||||||
|
FSTRING_LINK String file_extension(String str);
|
||||||
|
FSTRING_LINK String file_extension_slowly(char *str);
|
||||||
|
FSTRING_LINK char * file_extension_c(String str);
|
||||||
|
FSTRING_LINK fstr_bool remove_last_folder(String *str);
|
||||||
|
FSTRING_LINK void replace_char(String str, char replace, char with);
|
||||||
|
FSTRING_LINK void replace_char(char *str, char replace, char with);
|
||||||
|
|
||||||
|
// TODO(allen): Add hash-table extension to string sets.
|
||||||
|
FSTRING_LINK fstr_bool string_set_match(String *str_set, int32_t count, String str, int32_t *match_index);
|
||||||
|
|
||||||
FSTRING_LINK int32_t reverse_seek_slash(String str);
|
|
||||||
FSTRING_LINK int32_t reverse_seek_slash(String str, int32_t start_pos);
|
|
||||||
FSTRING_INLINE String front_of_directory(String dir) { return substr(dir, reverse_seek_slash(dir) + 1); }
|
|
||||||
FSTRING_INLINE String path_of_directory(String dir) { return substr(dir, 0, reverse_seek_slash(dir) + 1); }
|
|
||||||
FSTRING_INLINE fstr_bool get_front_of_directory(String *dest, String dir) { return append_checked(dest, front_of_directory(dir)); }
|
|
||||||
FSTRING_INLINE fstr_bool get_path_of_directory(String *dest, String dir) { return append_checked(dest, path_of_directory(dir)); }
|
|
||||||
FSTRING_LINK fstr_bool set_last_folder(String *dir, char *folder_name, char slash);
|
|
||||||
FSTRING_LINK fstr_bool set_last_folder(String *dir, String folder_name, char slash);
|
|
||||||
FSTRING_LINK String file_extension(String str);
|
|
||||||
FSTRING_LINK String file_extension_slowly(char *str);
|
|
||||||
FSTRING_LINK char * file_extension_c(String str);
|
|
||||||
FSTRING_LINK fstr_bool remove_last_folder(String *str);
|
|
||||||
FSTRING_LINK void replace_char(String str, char replace, char with);
|
|
||||||
FSTRING_LINK void replace_char(char *str, char replace, char with);
|
|
||||||
|
|
||||||
FSTRING_INLINE String string_zero(){
|
FSTRING_INLINE String string_zero(){
|
||||||
String str={0};
|
String str={0};
|
||||||
|
@ -1251,6 +1255,20 @@ replace_char(char *str, char replace, char with){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FSTRING_LINK fstr_bool
|
||||||
|
string_set_match(String *str_set, int32_t count, String str, int32_t *match_index){
|
||||||
|
fstr_bool result = false;
|
||||||
|
int32_t i = 0;
|
||||||
|
for (; i < count; ++i, ++str_set){
|
||||||
|
if (match(*str_set, str)){
|
||||||
|
*match_index = i;
|
||||||
|
result = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return(result);
|
||||||
|
}
|
||||||
|
|
||||||
// NOTE(allen): experimental section, things below here are
|
// NOTE(allen): experimental section, things below here are
|
||||||
// not promoted to public API level yet.
|
// not promoted to public API level yet.
|
||||||
|
|
||||||
|
|
|
@ -1310,7 +1310,21 @@ VIEW_GET_PASTE_REWRITE__SIG(external_view_get_paste_rewrite_){
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
GET_USER_INPUT_SIG(external_get_user_input){
|
GET_USER_INPUT_SIG(external_get_user_input)/*
|
||||||
|
DOC_PARAM(get_type, input type flag that specifies the types of inputs that should be returned)
|
||||||
|
DOC_PARAM(abort_type, input type flag that specifies the types of inputs that should cause an abort signal)
|
||||||
|
DOC_RETURN(returns a User_Input that describes an event passed to the command)
|
||||||
|
DOC
|
||||||
|
(
|
||||||
|
This call preempts the command. The command is resumed if either a get or abort condition
|
||||||
|
is met, or if another command is executed. If either the abort condition is met or another
|
||||||
|
command is executed an abort signal is returned. If an abort signal is ever returned the
|
||||||
|
command should finish execution without any more calls that preempt the command.
|
||||||
|
If a get condition is met the user input is returned
|
||||||
|
)
|
||||||
|
DOC_SEE(Input_Type_Flag)
|
||||||
|
DOC_SEE(User_Input)
|
||||||
|
*/{
|
||||||
Command_Data *cmd = (Command_Data*)app->cmd_context;
|
Command_Data *cmd = (Command_Data*)app->cmd_context;
|
||||||
System_Functions *system = cmd->system;
|
System_Functions *system = cmd->system;
|
||||||
Coroutine *coroutine = (Coroutine*)app->current_coroutine;
|
Coroutine *coroutine = (Coroutine*)app->current_coroutine;
|
||||||
|
@ -1327,7 +1341,10 @@ GET_USER_INPUT_SIG(external_get_user_input){
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
GET_COMMAND_INPUT_SIG(external_get_command_input){
|
GET_COMMAND_INPUT_SIG(external_get_command_input)/*
|
||||||
|
DOC_RETURN(returns the input that triggered the command in execution.)
|
||||||
|
DOC_SEE(User_Input)
|
||||||
|
*/{
|
||||||
Command_Data *cmd = (Command_Data*)app->cmd_context;
|
Command_Data *cmd = (Command_Data*)app->cmd_context;
|
||||||
User_Input result;
|
User_Input result;
|
||||||
|
|
||||||
|
@ -1339,13 +1356,17 @@ GET_COMMAND_INPUT_SIG(external_get_command_input){
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
GET_MOUSE_STATE_SIG(external_get_mouse_state){
|
GET_MOUSE_STATE_SIG(external_get_mouse_state)/*
|
||||||
|
DOC_RETURN(returns the current mouse state)
|
||||||
|
DOC_SEE(Mouse_State)
|
||||||
|
*/{
|
||||||
Command_Data *cmd = (Command_Data*)app->cmd_context;
|
Command_Data *cmd = (Command_Data*)app->cmd_context;
|
||||||
App_Vars *vars = cmd->vars;
|
App_Vars *vars = cmd->vars;
|
||||||
Mouse_State mouse = direct_get_mouse_state(&vars->available_input);
|
Mouse_State mouse = direct_get_mouse_state(&vars->available_input);
|
||||||
return(mouse);
|
return(mouse);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
GET_EVENT_MESSAGE_SIG(external_get_event_message){
|
GET_EVENT_MESSAGE_SIG(external_get_event_message){
|
||||||
Event_Message message = {0};
|
Event_Message message = {0};
|
||||||
System_Functions *system = (System_Functions*)app->system_links;
|
System_Functions *system = (System_Functions*)app->system_links;
|
||||||
|
@ -1359,8 +1380,18 @@ GET_EVENT_MESSAGE_SIG(external_get_event_message){
|
||||||
|
|
||||||
return(message);
|
return(message);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
START_QUERY_BAR_SIG(external_start_query_bar){
|
START_QUERY_BAR_SIG(external_start_query_bar)/*
|
||||||
|
DOC_PARAM(bar, a pointer to the Query_Bar struct that defines the bar's contents)
|
||||||
|
DOC_PARAM(flags, not currently used)
|
||||||
|
DOC_RETURN(returns non-zero on success)
|
||||||
|
DOC
|
||||||
|
(
|
||||||
|
The memory pointed to by bar must remain valid until a call to end_query_bar or
|
||||||
|
until the command returns.
|
||||||
|
)
|
||||||
|
*/{
|
||||||
Command_Data *cmd = (Command_Data*)app->cmd_context;
|
Command_Data *cmd = (Command_Data*)app->cmd_context;
|
||||||
Query_Slot *slot = 0;
|
Query_Slot *slot = 0;
|
||||||
View *vptr;
|
View *vptr;
|
||||||
|
@ -1373,20 +1404,33 @@ START_QUERY_BAR_SIG(external_start_query_bar){
|
||||||
return(slot != 0);
|
return(slot != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
END_QUERY_BAR_SIG(external_end_query_bar){
|
END_QUERY_BAR_SIG(external_end_query_bar)/*
|
||||||
|
DOC_PARAM(bar, a pointer to the Query_Bar struct to end)
|
||||||
|
DOC_PARAM(flags, not currently used)
|
||||||
|
DOC
|
||||||
|
(
|
||||||
|
bar must be a pointer previously passed to start_query_bar previously in the same command.
|
||||||
|
)
|
||||||
|
*/{
|
||||||
Command_Data *cmd = (Command_Data*)app->cmd_context;
|
Command_Data *cmd = (Command_Data*)app->cmd_context;
|
||||||
View *vptr;
|
View *vptr;
|
||||||
vptr = cmd->view;
|
vptr = cmd->view;
|
||||||
free_query_slot(&vptr->query_set, bar);
|
free_query_slot(&vptr->query_set, bar);
|
||||||
}
|
}
|
||||||
|
|
||||||
PRINT_MESSAGE_SIG(external_print_message){
|
PRINT_MESSAGE_SIG(external_print_message)/*
|
||||||
|
DOC_PARAM(str, the string to post to *messages*)
|
||||||
|
DOC_PARAM(len, the length of str string)
|
||||||
|
*/{
|
||||||
Command_Data *cmd = (Command_Data*)app->cmd_context;
|
Command_Data *cmd = (Command_Data*)app->cmd_context;
|
||||||
Models *models = cmd->models;
|
Models *models = cmd->models;
|
||||||
do_feedback_message(cmd->system, models, make_string(string, len));
|
do_feedback_message(cmd->system, models, make_string(str, len));
|
||||||
}
|
}
|
||||||
|
|
||||||
CHANGE_THEME_SIG(external_change_theme){
|
CHANGE_THEME_SIG(external_change_theme)/*
|
||||||
|
DOC_PARAM(name, the name of the built in theme to change to)
|
||||||
|
DOC_PARAM(len, the length of the name string)
|
||||||
|
*/{
|
||||||
Command_Data *cmd = (Command_Data*)app->cmd_context;
|
Command_Data *cmd = (Command_Data*)app->cmd_context;
|
||||||
Style_Library *styles = &cmd->models->styles;
|
Style_Library *styles = &cmd->models->styles;
|
||||||
String theme_name = make_string(name, len);
|
String theme_name = make_string(name, len);
|
||||||
|
@ -1403,7 +1447,10 @@ CHANGE_THEME_SIG(external_change_theme){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CHANGE_FONT_SIG(external_change_font){
|
CHANGE_FONT_SIG(external_change_font)/*
|
||||||
|
DOC_PARAM(name, the name of the built in font to change to)
|
||||||
|
DOC_PARAM(len, the length of the name string)
|
||||||
|
*/{
|
||||||
Command_Data *cmd = (Command_Data*)app->cmd_context;
|
Command_Data *cmd = (Command_Data*)app->cmd_context;
|
||||||
Font_Set *set = cmd->models->font_set;
|
Font_Set *set = cmd->models->font_set;
|
||||||
Style_Font *global_font = &cmd->models->global_font;
|
Style_Font *global_font = &cmd->models->global_font;
|
||||||
|
@ -1416,7 +1463,15 @@ CHANGE_FONT_SIG(external_change_font){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SET_THEME_COLORS_SIG(external_set_theme_colors){
|
SET_THEME_COLORS_SIG(external_set_theme_colors)/*
|
||||||
|
DOC_PARAM(colors, an array of color structs pairing differet style tags to color codes)
|
||||||
|
DOC_PARAM(count, the number of color structs in the colors array)
|
||||||
|
DOC
|
||||||
|
(
|
||||||
|
For each color struct in the array, the color in the style pallet is set to the color
|
||||||
|
code paired with the tag.
|
||||||
|
)
|
||||||
|
*/{
|
||||||
Command_Data *cmd = (Command_Data*)app->cmd_context;
|
Command_Data *cmd = (Command_Data*)app->cmd_context;
|
||||||
Style *style = main_style(cmd->models);
|
Style *style = main_style(cmd->models);
|
||||||
|
|
||||||
|
@ -1430,7 +1485,15 @@ SET_THEME_COLORS_SIG(external_set_theme_colors){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
GET_THEME_COLORS_SIG(external_get_theme_colors){
|
GET_THEME_COLORS_SIG(external_get_theme_colors)/*
|
||||||
|
DOC_PARAM(colors, an array of color structs listing style tags to get color values for)
|
||||||
|
DOC_PARAM(count, the number of color structs in the colors array)
|
||||||
|
DOC
|
||||||
|
(
|
||||||
|
For each color struct in the array, the color field of the struct is filled with the
|
||||||
|
color from the specified color in the pallet.
|
||||||
|
)
|
||||||
|
*/{
|
||||||
Command_Data *cmd = (Command_Data*)app->cmd_context;
|
Command_Data *cmd = (Command_Data*)app->cmd_context;
|
||||||
Style *style = main_style(cmd->models);
|
Style *style = main_style(cmd->models);
|
||||||
|
|
||||||
|
|
324
4ed_metagen.cpp
324
4ed_metagen.cpp
|
@ -1,17 +1,24 @@
|
||||||
/*
|
/*
|
||||||
* Mr. 4th Dimention - Allen Webster
|
* Mr. 4th Dimention - Allen Webster
|
||||||
*
|
*
|
||||||
* 25.02.2016
|
* 25.02.2016
|
||||||
*
|
*
|
||||||
* File editing view for 4coder
|
* File editing view for 4coder
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// TOP
|
// TOP
|
||||||
|
|
||||||
|
#include "4ed_meta.h"
|
||||||
#define FCPP_STRING_IMPLEMENTATION
|
#define FCPP_STRING_IMPLEMENTATION
|
||||||
#include "4coder_string.h"
|
#include "4coder_string.h"
|
||||||
|
|
||||||
|
#include "4cpp_types.h"
|
||||||
|
#include "4cpp_lexer_types.h"
|
||||||
|
|
||||||
|
#define FCPP_LEXER_IMPLEMENTATION
|
||||||
|
#include "4cpp_lexer.h"
|
||||||
|
|
||||||
struct Struct_Field{
|
struct Struct_Field{
|
||||||
char *type;
|
char *type;
|
||||||
char *name;
|
char *name;
|
||||||
|
@ -26,6 +33,15 @@ void to_lower(char *src, char *dst){
|
||||||
*dst = 0;
|
*dst = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void to_lower(String *str){
|
||||||
|
char *c;
|
||||||
|
int i = 0;
|
||||||
|
int size = str->size;
|
||||||
|
for (c = str->str; i < size; ++c, ++i){
|
||||||
|
*c = char_to_lower(*c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void to_upper(char *src, char *dst){
|
void to_upper(char *src, char *dst){
|
||||||
char *c, ch;
|
char *c, ch;
|
||||||
for (c = src; *c != 0; ++c){
|
for (c = src; *c != 0; ++c){
|
||||||
|
@ -35,6 +51,15 @@ void to_upper(char *src, char *dst){
|
||||||
*dst = 0;
|
*dst = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void to_upper(String *str){
|
||||||
|
char *c;
|
||||||
|
int i = 0;
|
||||||
|
int size = str->size;
|
||||||
|
for (c = str->str; i < size; ++c, ++i){
|
||||||
|
*c = char_to_upper(*c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void to_camel(char *src, char *dst){
|
void to_camel(char *src, char *dst){
|
||||||
char *c, ch;
|
char *c, ch;
|
||||||
int is_first = 1;
|
int is_first = 1;
|
||||||
|
@ -303,13 +328,25 @@ char* generate_style(){
|
||||||
}
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
struct Function_Signature{
|
struct Function_Set{
|
||||||
String name;
|
String *name;
|
||||||
String ret;
|
String *ret;
|
||||||
String args;
|
String *args;
|
||||||
int valid;
|
|
||||||
|
String *macros;
|
||||||
|
String *public_name;
|
||||||
|
|
||||||
|
int *valid;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void
|
||||||
|
zero_index(Function_Set fnc_set, int sig_count){
|
||||||
|
fnc_set.name [sig_count] = string_zero();
|
||||||
|
fnc_set.ret [sig_count] = string_zero();
|
||||||
|
fnc_set.args [sig_count] = string_zero();
|
||||||
|
fnc_set.valid[sig_count] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
String
|
String
|
||||||
file_dump(char *filename){
|
file_dump(char *filename){
|
||||||
String result = {0};
|
String result = {0};
|
||||||
|
@ -391,9 +428,71 @@ is_comment(String str){
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct Doc_Parse{
|
||||||
|
Cpp_Token_Stack tokens;
|
||||||
|
String doc_string;
|
||||||
|
};
|
||||||
|
|
||||||
|
int
|
||||||
|
check_and_fix_docs(String *lexeme){
|
||||||
|
int result = false;
|
||||||
|
|
||||||
|
if (lexeme->size > 4){
|
||||||
|
if (lexeme->str[0] == '/'){
|
||||||
|
if (lexeme->str[1] == '*'){
|
||||||
|
if (lexeme->str[lexeme->size - 2] == '*'){
|
||||||
|
if (lexeme->str[lexeme->size - 1] == '/'){
|
||||||
|
result = true;
|
||||||
|
lexeme->str += 2;
|
||||||
|
lexeme->size -= 4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
static String
|
||||||
|
doc_note_string[] = {
|
||||||
|
make_lit_string("DOC_PARAM"),
|
||||||
|
make_lit_string("DOC_RETURN"),
|
||||||
|
make_lit_string("DOC"),
|
||||||
|
make_lit_string("DOC_SEE"),
|
||||||
|
};
|
||||||
|
|
||||||
|
void
|
||||||
|
perform_doc_parse(Doc_Parse *parse, String lexeme){
|
||||||
|
#if 0
|
||||||
|
int keep_parsing = true;
|
||||||
|
int pos = 0;
|
||||||
|
|
||||||
|
do{
|
||||||
|
String doc_note = doc_parse_identifier(lexeme, &pos);
|
||||||
|
if (doc_note.size == 0){
|
||||||
|
keep_parsing = false;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if (string_set_match(doc_note_string, ArrayCount(doc_note_string), doc_note, &match)){
|
||||||
|
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
// TODO(allen): do warning
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}while(keep_parsing);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
char*
|
char*
|
||||||
generate_custom_headers(){
|
generate_custom_headers(){
|
||||||
char *filename = "4coder_custom_api.h";
|
#define API_H "4coder_custom_api.h"
|
||||||
|
#define API_DOC "4coder_API.html"
|
||||||
|
|
||||||
|
char *filename = API_H " & " API_DOC;
|
||||||
|
|
||||||
|
// NOTE(allen): Header
|
||||||
String data = file_dump("custom_api_spec.cpp");
|
String data = file_dump("custom_api_spec.cpp");
|
||||||
|
|
||||||
int line_count = 0;
|
int line_count = 0;
|
||||||
|
@ -404,8 +503,14 @@ generate_custom_headers(){
|
||||||
++line_count;
|
++line_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
Function_Signature *sigs =
|
Function_Set function_set = {0};
|
||||||
(Function_Signature*)malloc(sizeof(Function_Signature)*line_count);
|
|
||||||
|
function_set.name = (String*)malloc((sizeof(String)*5 + sizeof(int))*line_count);
|
||||||
|
function_set.ret = function_set.name + line_count;
|
||||||
|
function_set.args = function_set.ret + line_count;
|
||||||
|
function_set.macros = function_set.args + line_count;
|
||||||
|
function_set.public_name = function_set.macros + line_count;
|
||||||
|
function_set.valid = (int*)(function_set.public_name + line_count);
|
||||||
|
|
||||||
int max_name_size = 0;
|
int max_name_size = 0;
|
||||||
int sig_count = 0;
|
int sig_count = 0;
|
||||||
|
@ -421,85 +526,101 @@ generate_custom_headers(){
|
||||||
parse = chop_whitespace(parse);
|
parse = chop_whitespace(parse);
|
||||||
if (parse.size > 0){
|
if (parse.size > 0){
|
||||||
if (!is_comment(parse)){
|
if (!is_comment(parse)){
|
||||||
Function_Signature *sig = sigs + sig_count;
|
zero_index(function_set, sig_count);
|
||||||
memset(sig, 0, sizeof(*sig));
|
int valid = false;
|
||||||
|
|
||||||
++sig_count;
|
|
||||||
|
|
||||||
int pos = find(parse, 0, ' ');
|
int pos = find(parse, 0, ' ');
|
||||||
sig->ret = substr(parse, 0, pos);
|
function_set.ret[sig_count] = substr(parse, 0, pos);
|
||||||
parse = substr(parse, pos);
|
parse = substr(parse, pos);
|
||||||
parse = skip_whitespace(parse);
|
parse = skip_whitespace(parse);
|
||||||
|
|
||||||
if (parse.size > 0){
|
if (parse.size > 0){
|
||||||
pos = find(parse, 0, '(');
|
pos = find(parse, 0, '(');
|
||||||
sig->name = substr(parse, 0, pos);
|
|
||||||
sig->name = chop_whitespace(sig->name);
|
String name_string = substr(parse, 0, pos);
|
||||||
|
function_set.name[sig_count] = chop_whitespace(name_string);
|
||||||
parse = substr(parse, pos);
|
parse = substr(parse, pos);
|
||||||
|
|
||||||
if (parse.size > 0){
|
if (parse.size > 0){
|
||||||
char end = parse.str[parse.size - 1];
|
char end = parse.str[parse.size - 1];
|
||||||
int valid = true;
|
valid = true;
|
||||||
|
|
||||||
switch (end){
|
switch (end){
|
||||||
case ')':
|
case ')':
|
||||||
sig->args = parse;
|
function_set.args[sig_count] = parse;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ';':
|
case ';':
|
||||||
--parse.size;
|
--parse.size;
|
||||||
sig->args = parse;
|
function_set.args[sig_count] = parse;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
valid = false;
|
valid = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
sig->valid = valid;
|
function_set.valid[sig_count] = valid;
|
||||||
|
|
||||||
if (max_name_size < sig->name.size){
|
if (max_name_size < name_string.size){
|
||||||
max_name_size = sig->name.size;
|
max_name_size = name_string.size;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!sig->valid){
|
if (!valid){
|
||||||
printf("custom_api_spec.cpp(%d) : generator warning : invalid function signature\n",
|
printf("custom_api_spec.cpp(%d) : generator warning : invalid function signature\n",
|
||||||
line_count);
|
line_count);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
++sig_count;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FILE *file = fopen("4coder_custom_api.h", "wb");
|
FILE *file = fopen(API_H, "wb");
|
||||||
int buffer_size = max_name_size + 1;
|
|
||||||
char *name_buffer = (char*)malloc(buffer_size);
|
|
||||||
|
|
||||||
for (int i = 0; i < sig_count; ++i){
|
for (int i = 0; i < sig_count; ++i){
|
||||||
Function_Signature *sig = sigs + i;
|
String name_string = function_set.name[i];
|
||||||
|
String *macro = function_set.macros + i;
|
||||||
|
String *public_name = function_set.public_name + i;
|
||||||
|
|
||||||
copy_fast_unsafe(name_buffer, sig->name);
|
macro->size = 0;
|
||||||
name_buffer[sig->name.size] = 0;
|
macro->memory_size = name_string.size+4;
|
||||||
to_upper(name_buffer, name_buffer);
|
|
||||||
|
|
||||||
fprintf(file, "#define %s_SIG(n) %.*s n%.*s\n",
|
macro->str = (char*)malloc(macro->memory_size);
|
||||||
name_buffer,
|
copy(macro, name_string);
|
||||||
sig->ret.size, sig->ret.str,
|
to_upper(macro);
|
||||||
sig->args.size, sig->args.str
|
append(macro, make_lit_string("_SIG"));
|
||||||
|
|
||||||
|
|
||||||
|
public_name->size = 0;
|
||||||
|
public_name->memory_size = name_string.size;
|
||||||
|
|
||||||
|
public_name->str = (char*)malloc(public_name->memory_size);
|
||||||
|
copy(public_name, name_string);
|
||||||
|
to_lower(public_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < sig_count; ++i){
|
||||||
|
String ret_string = function_set.ret[i];
|
||||||
|
String args_string = function_set.args[i];
|
||||||
|
String macro_string = function_set.macros[i];
|
||||||
|
|
||||||
|
fprintf(file, "#define %.*s(n) %.*s n%.*s\n",
|
||||||
|
macro_string.size, macro_string.str,
|
||||||
|
ret_string.size, ret_string.str,
|
||||||
|
args_string.size, args_string.str
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(file, "extern \"C\"{\n");
|
fprintf(file, "extern \"C\"{\n");
|
||||||
for (int i = 0; i < sig_count; ++i){
|
for (int i = 0; i < sig_count; ++i){
|
||||||
Function_Signature *sig = sigs + i;
|
String name_string = function_set.name[i];
|
||||||
|
String macro_string = function_set.macros[i];
|
||||||
|
|
||||||
copy_fast_unsafe(name_buffer, sig->name);
|
fprintf(file, " typedef %.*s(%.*s_Function);\n",
|
||||||
name_buffer[sig->name.size] = 0;
|
macro_string.size, macro_string.str,
|
||||||
to_upper(name_buffer, name_buffer);
|
name_string.size, name_string.str);
|
||||||
|
|
||||||
fprintf(file, " typedef %s_SIG(%.*s_Function);\n",
|
|
||||||
name_buffer,
|
|
||||||
sig->name.size, sig->name.str);
|
|
||||||
}
|
}
|
||||||
fprintf(file, "}\n");
|
fprintf(file, "}\n");
|
||||||
|
|
||||||
|
@ -509,15 +630,12 @@ generate_custom_headers(){
|
||||||
" int memory_size;\n"
|
" int memory_size;\n"
|
||||||
);
|
);
|
||||||
for (int i = 0; i < sig_count; ++i){
|
for (int i = 0; i < sig_count; ++i){
|
||||||
Function_Signature *sig = sigs + i;
|
String name_string = function_set.name[i];
|
||||||
|
String public_string = function_set.public_name[i];
|
||||||
|
|
||||||
copy_fast_unsafe(name_buffer, sig->name);
|
fprintf(file, " %.*s_Function *%.*s;\n",
|
||||||
name_buffer[sig->name.size] = 0;
|
name_string.size, name_string.str,
|
||||||
to_lower(name_buffer, name_buffer);
|
public_string.size, public_string.str);
|
||||||
|
|
||||||
fprintf(file, " %.*s_Function *%s;\n",
|
|
||||||
sig->name.size, sig->name.str,
|
|
||||||
name_buffer);
|
|
||||||
}
|
}
|
||||||
fprintf(file,
|
fprintf(file,
|
||||||
" void *cmd_context;\n"
|
" void *cmd_context;\n"
|
||||||
|
@ -529,34 +647,106 @@ generate_custom_headers(){
|
||||||
|
|
||||||
fprintf(file, "#define FillAppLinksAPI(app_links) do{");
|
fprintf(file, "#define FillAppLinksAPI(app_links) do{");
|
||||||
for (int i = 0; i < sig_count; ++i){
|
for (int i = 0; i < sig_count; ++i){
|
||||||
Function_Signature *sig = sigs + i;
|
String public_string = function_set.public_name[i];
|
||||||
|
|
||||||
copy_fast_unsafe(name_buffer, sig->name);
|
|
||||||
name_buffer[sig->name.size] = 0;
|
|
||||||
to_lower(name_buffer, name_buffer);
|
|
||||||
|
|
||||||
fprintf(file,
|
fprintf(file,
|
||||||
"\\\n"
|
"\\\n"
|
||||||
"app_links->%s = external_%s;",
|
"app_links->%.*s = external_%.*s;",
|
||||||
name_buffer, name_buffer
|
public_string.size, public_string.str,
|
||||||
|
public_string.size, public_string.str
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
fprintf(file, " } while(false)\n");
|
fprintf(file, " } while(false)\n");
|
||||||
|
|
||||||
fclose(file);
|
fclose(file);
|
||||||
|
|
||||||
|
// NOTE(allen): Documentation
|
||||||
|
String code_data[2];
|
||||||
|
Doc_Parse parses[2];
|
||||||
|
|
||||||
|
code_data[0] = file_dump("4ed_api_implementation.cpp");
|
||||||
|
code_data[1] = file_dump("win32_4ed.cpp");
|
||||||
|
|
||||||
|
for (int J = 0; J < 2; ++J){
|
||||||
|
String *code = &code_data[J];
|
||||||
|
Doc_Parse *parse = &parses[J];
|
||||||
|
|
||||||
|
// TODO(allen): KILL THIS FUCKIN' Cpp_File FUCKIN NONSENSE BULLSHIT!!!!!
|
||||||
|
Cpp_File file;
|
||||||
|
file.data = code->str;
|
||||||
|
file.size = code->size;
|
||||||
|
|
||||||
|
parse->tokens = cpp_make_token_stack(512);
|
||||||
|
cpp_lex_file(file, &parse->tokens);
|
||||||
|
|
||||||
|
int count = parse->tokens.count;
|
||||||
|
Cpp_Token *tokens = parse->tokens.tokens;
|
||||||
|
|
||||||
|
Cpp_Token *token = tokens;
|
||||||
|
for (int i = 0; i < count; ++i, ++token){
|
||||||
|
if (token->type == CPP_TOKEN_IDENTIFIER){
|
||||||
|
String lexeme = make_string(file.data + token->start, token->size);
|
||||||
|
int match = 0;
|
||||||
|
if (string_set_match(function_set.macros, sig_count, lexeme, &match)){
|
||||||
|
for (; i < count; ++i, ++token){
|
||||||
|
if (token->type == CPP_TOKEN_COMMENT){
|
||||||
|
lexeme = make_string(file.data + token->start, token->size);
|
||||||
|
if (check_and_fix_docs(&lexeme)){
|
||||||
|
perform_doc_parse(parse, lexeme);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
file = fopen(API_DOC, "wb");
|
||||||
|
|
||||||
|
fprintf(file,
|
||||||
|
"<html lang=\"en-US\">\n"
|
||||||
|
"<head>\n"
|
||||||
|
"<title>4coder API Docs</title>\n"
|
||||||
|
"</head>\n"
|
||||||
|
"<body style='font-family:Arial;'>\n"
|
||||||
|
"<h1>4coder API</h1>"
|
||||||
|
);
|
||||||
|
|
||||||
|
fprintf(file,
|
||||||
|
"<h2>\n§1 Introduction</h2>\n"
|
||||||
|
"<div style='margin-bottom: 5mm;'><i>Coming Soon</i></div>");
|
||||||
|
|
||||||
|
fprintf(file, "<h2>\n§2 Functions</h2>\n");
|
||||||
|
for (int i = 0; i < sig_count; ++i){
|
||||||
|
String name = function_set.public_name[i];
|
||||||
|
fprintf(file,
|
||||||
|
"<div>\n"
|
||||||
|
"%.*s\n"
|
||||||
|
"</div>\n",
|
||||||
|
name.size, name.str
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf(file,
|
||||||
|
"</body>"
|
||||||
|
"</html>\n"
|
||||||
|
);
|
||||||
|
|
||||||
|
fclose(file);
|
||||||
|
|
||||||
return(filename);
|
return(filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(){
|
int main(){
|
||||||
char *filename;
|
char *filename = 0;
|
||||||
|
|
||||||
filename = generate_keycode_enum();
|
filename = generate_keycode_enum();
|
||||||
printf("gen success: %s\n", filename);
|
printf("gen success: %s\n", filename);
|
||||||
|
|
||||||
filename = generate_style();
|
filename = generate_style();
|
||||||
printf("gen success: %s\n", filename);
|
printf("gen success: %s\n", filename);
|
||||||
|
|
||||||
filename = generate_custom_headers();
|
filename = generate_custom_headers();
|
||||||
printf("gen success: %s\n", filename);
|
printf("gen success: %s\n", filename);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Distribution Date: 23.6.2016 (dd.mm.yyyy)
|
Distribution Date: 24.6.2016 (dd.mm.yyyy)
|
||||||
|
|
||||||
Thank you for contributing to the 4coder project!
|
Thank you for contributing to the 4coder project!
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Distribution Date: 23.6.2016 (dd.mm.yyyy)
|
Distribution Date: 24.6.2016 (dd.mm.yyyy)
|
||||||
|
|
||||||
Thank you for contributing to the 4coder project!
|
Thank you for contributing to the 4coder project!
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,14 @@
|
||||||
@echo off
|
@echo off
|
||||||
|
|
||||||
|
|
||||||
|
pushd ..\meta
|
||||||
|
REM cl %OPTS% ..\code\4ed_metagen.cpp /Zi /Femetagen
|
||||||
|
popd
|
||||||
|
|
||||||
|
pushd ..\code
|
||||||
|
REM "..\meta\metagen"
|
||||||
|
popd
|
||||||
|
|
||||||
REM "build_exp.bat" /Zi
|
REM "build_exp.bat" /Zi
|
||||||
"build_all.bat" /DFRED_SUPER /DFRED_INTERNAL /Zi
|
"build_all.bat" /DFRED_SUPER /DFRED_INTERNAL /Zi
|
||||||
REM "build_all.bat" /O2 /Zi
|
REM "build_all.bat" /O2 /Zi
|
||||||
|
|
|
@ -56,21 +56,21 @@ void View_Set_Paste_Rewrite_(Application_Links *app, View_Summary *view);
|
||||||
int View_Get_Paste_Rewrite_(Application_Links *app, View_Summary *view);
|
int View_Get_Paste_Rewrite_(Application_Links *app, View_Summary *view);
|
||||||
|
|
||||||
// Directly get user input
|
// Directly get user input
|
||||||
User_Input Get_User_Input(Application_Links *app, unsigned int get_type, unsigned int abort_type);
|
User_Input Get_User_Input (Application_Links *app, unsigned int get_type, unsigned int abort_type);
|
||||||
User_Input Get_Command_Input(Application_Links *app);
|
User_Input Get_Command_Input (Application_Links *app);
|
||||||
Event_Message Get_Event_Message(Application_Links *app);
|
Mouse_State Get_Mouse_State (Application_Links *app);
|
||||||
Mouse_State Get_Mouse_State(Application_Links *app);
|
//Event_Message Get_Event_Message (Application_Links *app);
|
||||||
|
|
||||||
// Queries and information display
|
// Queries and information display
|
||||||
int Start_Query_Bar(Application_Links *app, Query_Bar *bar, unsigned int flags);
|
int Start_Query_Bar (Application_Links *app, Query_Bar *bar, unsigned int flags);
|
||||||
void End_Query_Bar(Application_Links *app, Query_Bar *bar, unsigned int flags);
|
void End_Query_Bar (Application_Links *app, Query_Bar *bar, unsigned int flags);
|
||||||
void Print_Message(Application_Links *app, char *string, int len);
|
void Print_Message (Application_Links *app, char *str, int len);
|
||||||
//GUI_Functions* Get_GUI_Functions(Application_Links *app);
|
//GUI_Functions* Get_GUI_Functions(Application_Links *app);
|
||||||
//GUI* Get_GUI(Application_Links *app, int view_id);
|
//GUI* Get_GUI(Application_Links *app, int view_id);
|
||||||
|
|
||||||
// Color settings
|
// Color settings
|
||||||
void Change_Theme(Application_Links *app, char *name, int len);
|
void Change_Theme (Application_Links *app, char *name, int len);
|
||||||
void Change_Font(Application_Links *app, char *name, int len);
|
void Change_Font (Application_Links *app, char *name, int len);
|
||||||
void Set_Theme_Colors(Application_Links *app, Theme_Color *colors, int count);
|
void Set_Theme_Colors (Application_Links *app, Theme_Color *colors, int count);
|
||||||
void Get_Theme_Colors(Application_Links *app, Theme_Color *colors, int count);
|
void Get_Theme_Colors (Application_Links *app, Theme_Color *colors, int count);
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@ copy ..\build\4ed_app.pdb ..\current_dist\4coder\*
|
||||||
copy ..\data\* ..\current_dist\4coder\*
|
copy ..\data\* ..\current_dist\4coder\*
|
||||||
copy README.txt ..\current_dist\4coder\*
|
copy README.txt ..\current_dist\4coder\*
|
||||||
copy TODO.txt ..\current_dist\4coder\*
|
copy TODO.txt ..\current_dist\4coder\*
|
||||||
|
copy 4coder_API.html ..\current_dist\4coder\*
|
||||||
del ..\current_dist\SUPERREADME.txt
|
del ..\current_dist\SUPERREADME.txt
|
||||||
del ..\current_dist\4coder\basic.cpp
|
del ..\current_dist\4coder\basic.cpp
|
||||||
del ..\current_dist\4coder\.4coder_settings
|
del ..\current_dist\4coder\.4coder_settings
|
||||||
|
@ -33,6 +34,7 @@ copy 4coder_*.cpp ..\current_dist_super\4coder\*
|
||||||
copy README.txt ..\current_dist_super\4coder\*
|
copy README.txt ..\current_dist_super\4coder\*
|
||||||
copy TODO.txt ..\current_dist_super\4coder\*
|
copy TODO.txt ..\current_dist_super\4coder\*
|
||||||
copy SUPERREADME.txt ..\current_dist_super\4coder\*
|
copy SUPERREADME.txt ..\current_dist_super\4coder\*
|
||||||
|
copy 4coder_API.html ..\current_dist_super\4coder\*
|
||||||
copy ..\current_dist\4coder\3rdparty\* ..\current_dist_super\4coder\3rdparty\*
|
copy ..\current_dist\4coder\3rdparty\* ..\current_dist_super\4coder\3rdparty\*
|
||||||
REM del ..\current_dist_super\4coder\*.pdb
|
REM del ..\current_dist_super\4coder\*.pdb
|
||||||
del ..\current_dist_super\4coder\*.lib
|
del ..\current_dist_super\4coder\*.lib
|
||||||
|
|
Loading…
Reference in New Issue