#include <stdio.h>
#include <stdlib.h>
#include "stock.h"
#include "../ui/properties.h"
#include <ucx/map.h>
static UcxMap *stock_items;
void ui_stock_init() {
stock_items = ucx_map_new(
64);
ui_add_stock_item(
UI_STOCK_NEW,
"New",
"Ctrl<Key>N",
"Ctrl+N",
NULL);
ui_add_stock_item(
UI_STOCK_OPEN,
"Open",
"Ctrl<Key>O",
"Ctrl+O",
NULL);
ui_add_stock_item(
UI_STOCK_SAVE,
"Save",
"Ctrl<Key>S",
"Ctrl+S",
NULL);
ui_add_stock_item(
UI_STOCK_SAVE_AS,
"Save as ...",
NULL,
NULL,
NULL);
ui_add_stock_item(
UI_STOCK_REVERT_TO_SAVED,
"Revert to saved",
NULL,
NULL,
NULL);
ui_add_stock_item(
UI_STOCK_CLOSE,
"Close",
"Ctrl<Key>W",
"Ctrl+W",
NULL);
ui_add_stock_item(
UI_STOCK_UNDO,
"Undo",
"Ctrl<Key>Z",
"Ctrl+Z",
NULL);
ui_add_stock_item(
UI_STOCK_REDO,
"Redo",
NULL,
NULL,
NULL);
ui_add_stock_item(
UI_STOCK_GO_BACK,
"Back",
NULL,
NULL,
NULL);
ui_add_stock_item(
UI_STOCK_GO_FORWARD,
"Forward",
NULL,
NULL,
NULL);
ui_add_stock_item(
UI_STOCK_CUT,
"Cut",
"Ctrl<Key>X",
"Ctrl+X",
NULL);
ui_add_stock_item(
UI_STOCK_COPY,
"Copy",
"Ctrl<Key>C",
"Ctrl+C",
NULL);
ui_add_stock_item(
UI_STOCK_PASTE,
"Paste",
"Ctrl<Key>V",
"Ctrl+V",
NULL);
ui_add_stock_item(
UI_STOCK_DELETE,
"Delete",
NULL,
NULL,
NULL);
}
void ui_add_stock_item(
char *id,
char *label,
char *accelerator,
char *accelerator_label,
void *icon) {
UiStockItem *i = malloc(
sizeof(UiStockItem));
i->label = label;
i->accelerator = accelerator;
i->accelerator_label = accelerator_label;
ucx_map_cstr_put(stock_items, id, i);
}
UiStockItem* ui_get_stock_item(
char *id) {
UiStockItem *item = ucx_map_cstr_get(stock_items, id);
if(item) {
char *label = uistr_n(id);
if(label) {
item->label = label;
}
}
return item;
}