Other build issues fixed. Now for other issues.
This commit is contained in:
parent
13e90c4263
commit
4a9d0081a3
|
@ -10,7 +10,7 @@ struct controlBase {
|
||||||
|
|
||||||
static uintmax_t type_uiControl = 0;
|
static uintmax_t type_uiControl = 0;
|
||||||
|
|
||||||
uintmax_t uiTypeControl(void)
|
uintmax_t uiControlType(void)
|
||||||
{
|
{
|
||||||
if (type_uiControl == 0)
|
if (type_uiControl == 0)
|
||||||
type_uiControl = uiRegisterType("uiControl", 0, sizeof (uiControl));
|
type_uiControl = uiRegisterType("uiControl", 0, sizeof (uiControl));
|
||||||
|
|
|
@ -6,7 +6,7 @@ struct uiCombobox {
|
||||||
BOOL editable;
|
BOOL editable;
|
||||||
NSPopUpButton *pb;
|
NSPopUpButton *pb;
|
||||||
NSComboBox *cb;
|
NSComboBox *cb;
|
||||||
uintptr_t handle; // for uiControlHandle()
|
NSObject *handle; // for uiControlHandle()
|
||||||
};
|
};
|
||||||
|
|
||||||
uiDarwinDefineControl(
|
uiDarwinDefineControl(
|
||||||
|
@ -33,13 +33,13 @@ static uiCombobox *finishNewCombobox(BOOL editable)
|
||||||
[c->cb setButtonBordered:YES];
|
[c->cb setButtonBordered:YES];
|
||||||
[c->cb setCompletes:NO];
|
[c->cb setCompletes:NO];
|
||||||
uiDarwinSetControlFont(c->cb, NSRegularControlSize);
|
uiDarwinSetControlFont(c->cb, NSRegularControlSize);
|
||||||
c->handle = (uintptr_t) (c->cb);
|
c->handle = c->cb;
|
||||||
} else {
|
} else {
|
||||||
c->pb = [[NSPopUpButton alloc] initWithFrame:NSZeroRect pullsDown:NO];
|
c->pb = [[NSPopUpButton alloc] initWithFrame:NSZeroRect pullsDown:NO];
|
||||||
// TODO preferred edge
|
// TODO preferred edge
|
||||||
// TODO arrow position
|
// TODO arrow position
|
||||||
// TODO font
|
// TODO font
|
||||||
c->handle = (uintptr_t) (c->pb);
|
c->handle = c->pb;
|
||||||
}
|
}
|
||||||
|
|
||||||
uiDarwinFinishNewControl(c, uiCombobox);
|
uiDarwinFinishNewControl(c, uiCombobox);
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
static uintmax_t type_uiDarwinControl = 0;
|
static uintmax_t type_uiDarwinControl = 0;
|
||||||
|
|
||||||
uintmax_t uiTypeMenu(void)
|
uintmax_t uiDarwinControlType(void)
|
||||||
{
|
{
|
||||||
if (type_uiDarwinControl == 0)
|
if (type_uiDarwinControl == 0)
|
||||||
type_uiDarwinControl = uiRegisterType("uiDarwinControl", uiControlType(), sizeof (uiDarwinControl));
|
type_uiDarwinControl = uiRegisterType("uiDarwinControl", uiControlType(), sizeof (uiDarwinControl));
|
||||||
|
|
|
@ -8,7 +8,7 @@ struct uiDateTimePicker {
|
||||||
|
|
||||||
uiDarwinDefineControl(
|
uiDarwinDefineControl(
|
||||||
uiDateTimePicker, // type name
|
uiDateTimePicker, // type name
|
||||||
uiDaateTimePickerType, // type function
|
uiDateTimePickerType, // type function
|
||||||
dp // handle
|
dp // handle
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ struct uiEntry {
|
||||||
{
|
{
|
||||||
[self->entries setObject:[NSValue valueWithPointer:e]
|
[self->entries setObject:[NSValue valueWithPointer:e]
|
||||||
forKey:e->textfield];
|
forKey:e->textfield];
|
||||||
[e->entry setDelegate:self];
|
[e->textfield setDelegate:self];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)unregisterEntry:(uiEntry *)e
|
- (void)unregisterEntry:(uiEntry *)e
|
||||||
|
@ -119,6 +119,11 @@ void finishNewTextField(NSTextField *t, BOOL isEntry)
|
||||||
[[t cell] setScrollable:YES];
|
[[t cell] setScrollable:YES];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void defaultOnChanged(uiEntry *e, void *data)
|
||||||
|
{
|
||||||
|
// do nothing
|
||||||
|
}
|
||||||
|
|
||||||
uiEntry *uiNewEntry(void)
|
uiEntry *uiNewEntry(void)
|
||||||
{
|
{
|
||||||
uiEntry *e;
|
uiEntry *e;
|
||||||
|
|
|
@ -12,7 +12,7 @@ uiDarwinDefineControl(
|
||||||
textfield // handle
|
textfield // handle
|
||||||
)
|
)
|
||||||
|
|
||||||
char *uiLabelText(uiLabel *ll)
|
char *uiLabelText(uiLabel *l)
|
||||||
{
|
{
|
||||||
return uiDarwinNSStringToText([l->textfield stringValue]);
|
return uiDarwinNSStringToText([l->textfield stringValue]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,12 +5,14 @@ static NSMutableArray *menus = nil;
|
||||||
static BOOL menusFinalized = NO;
|
static BOOL menusFinalized = NO;
|
||||||
|
|
||||||
struct uiMenu {
|
struct uiMenu {
|
||||||
|
uiTyped t;
|
||||||
NSMenu *menu;
|
NSMenu *menu;
|
||||||
NSMenuItem *item;
|
NSMenuItem *item;
|
||||||
NSMutableArray *items;
|
NSMutableArray *items;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct uiMenuItem {
|
struct uiMenuItem {
|
||||||
|
uiTyped t;
|
||||||
NSMenuItem *item;
|
NSMenuItem *item;
|
||||||
int type;
|
int type;
|
||||||
BOOL disabled;
|
BOOL disabled;
|
||||||
|
@ -219,7 +221,7 @@ int uiMenuItemChecked(uiMenuItem *item)
|
||||||
return [item->item state] != NSOffState;
|
return [item->item state] != NSOffState;
|
||||||
}
|
}
|
||||||
|
|
||||||
void menuItemSetChecked(uiMenuItem *item, int checked)
|
void uiMenuItemSetChecked(uiMenuItem *item, int checked)
|
||||||
{
|
{
|
||||||
NSInteger state;
|
NSInteger state;
|
||||||
|
|
||||||
|
@ -237,7 +239,7 @@ static uiMenuItem *newItem(uiMenu *m, int type, const char *name)
|
||||||
complain("attempt to create a new menu item after menus have been finalized");
|
complain("attempt to create a new menu item after menus have been finalized");
|
||||||
|
|
||||||
item = uiNew(uiMenuItem);
|
item = uiNew(uiMenuItem);
|
||||||
uiTyped(item)->Type = uiTypeMenuItem();
|
uiTyped(item)->Type = uiMenuItemType();
|
||||||
|
|
||||||
item->type = type;
|
item->type = type;
|
||||||
switch (item->type) {
|
switch (item->type) {
|
||||||
|
@ -288,7 +290,7 @@ uiMenuItem *uiMenuAppendQuitItem(uiMenu *m)
|
||||||
uiMenuItem *uiMenuAppendPreferencesItem(uiMenu *m)
|
uiMenuItem *uiMenuAppendPreferencesItem(uiMenu *m)
|
||||||
{
|
{
|
||||||
// duplicate check is in the register:to: selector
|
// duplicate check is in the register:to: selector
|
||||||
return newItem(mm, typePreferences, NULL);
|
return newItem(m, typePreferences, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
uiMenuItem *uiMenuAppendAboutItem(uiMenu *m)
|
uiMenuItem *uiMenuAppendAboutItem(uiMenu *m)
|
||||||
|
@ -312,7 +314,7 @@ uiMenu *uiNewMenu(const char *name)
|
||||||
menus = [NSMutableArray new];
|
menus = [NSMutableArray new];
|
||||||
|
|
||||||
m = uiNew(uiMenu);
|
m = uiNew(uiMenu);
|
||||||
uiTyped(m)->Type = uiTypeMenu();
|
uiTyped(m)->Type = uiMenuType();
|
||||||
|
|
||||||
m->menu = [[NSMenu alloc] initWithTitle:toNSString(name)];
|
m->menu = [[NSMenu alloc] initWithTitle:toNSString(name)];
|
||||||
// use automatic menu item enabling for all menus for consistency's sake
|
// use automatic menu item enabling for all menus for consistency's sake
|
||||||
|
|
|
@ -12,7 +12,7 @@ uiDarwinDefineControl(
|
||||||
pi // handle
|
pi // handle
|
||||||
)
|
)
|
||||||
|
|
||||||
void uiProgressbarSetValue(uiProgressBar *p, int value)
|
void uiProgressBarSetValue(uiProgressBar *p, int value)
|
||||||
{
|
{
|
||||||
if (value < 0 || value > 100)
|
if (value < 0 || value > 100)
|
||||||
complain("value %d out of range in progressbarSetValue()", value);
|
complain("value %d out of range in progressbarSetValue()", value);
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
// TODO events
|
// TODO events
|
||||||
|
|
||||||
type uiSlider {
|
struct uiSlider {
|
||||||
uiDarwinControl c;
|
uiDarwinControl c;
|
||||||
NSSlider *slider;
|
NSSlider *slider;
|
||||||
void (*onChanged)(uiSlider *, void *);
|
void (*onChanged)(uiSlider *, void *);
|
||||||
|
|
|
@ -35,7 +35,7 @@ static void defaultOnChanged(uiSpinbox *s, void *data)
|
||||||
// do nothing
|
// do nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
uiSpinbox *uiNewSpinbox(void)
|
uiSpinbox *uiNewSpinbox(intmax_t min, intmax_t max)
|
||||||
{
|
{
|
||||||
uiSpinbox *s;
|
uiSpinbox *s;
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@ uiSpinbox *uiNewSpinbox(void)
|
||||||
s->dummy = [[NSTextField alloc] initWithFrame:NSZeroRect];
|
s->dummy = [[NSTextField alloc] initWithFrame:NSZeroRect];
|
||||||
[s->dummy setStringValue:@"TODO uiSpinbox not implemented"];
|
[s->dummy setStringValue:@"TODO uiSpinbox not implemented"];
|
||||||
|
|
||||||
uiSpinboxSetOnChanged(s, defaultOnChanged, NULL);
|
uiSpinboxOnChanged(s, defaultOnChanged, NULL);
|
||||||
|
|
||||||
uiDarwinFinishNewControl(s, uiSpinbox);
|
uiDarwinFinishNewControl(s, uiSpinbox);
|
||||||
|
|
||||||
|
|
|
@ -60,7 +60,7 @@ void uiTabInsertAt(uiTab *t, const char *name, uintmax_t n, uiControl *child)
|
||||||
[view addSubview:childView];
|
[view addSubview:childView];
|
||||||
layoutSingleView(view, childView, 0);
|
layoutSingleView(view, childView, 0);
|
||||||
|
|
||||||
[t->pages insertObject:[NSValue valueWithPointer:page] atIndex:n];
|
[t->pages insertObject:[NSValue valueWithPointer:child] atIndex:n];
|
||||||
[t->views insertObject:view atIndex:n];
|
[t->views insertObject:view atIndex:n];
|
||||||
[t->margined insertObject:[NSNumber numberWithInt:0] atIndex:n];
|
[t->margined insertObject:[NSNumber numberWithInt:0] atIndex:n];
|
||||||
|
|
||||||
|
@ -86,13 +86,13 @@ void uiTabDelete(uiTab *t, uintmax_t n)
|
||||||
|
|
||||||
childView = (NSView *) uiControlHandle(child);
|
childView = (NSView *) uiControlHandle(child);
|
||||||
[childView removeFromSuperview];
|
[childView removeFromSuperview];
|
||||||
uiControlSetParent(childView, NULL);
|
uiControlSetParent(child, NULL);
|
||||||
|
|
||||||
i = [t->tabview tabViewItemAtIndex:n];
|
i = [t->tabview tabViewItemAtIndex:n];
|
||||||
[t->tabview removeTabViewItem:i];
|
[t->tabview removeTabViewItem:i];
|
||||||
}
|
}
|
||||||
|
|
||||||
uintmax_t uITabNumPages(uiTab *t)
|
uintmax_t uiTabNumPages(uiTab *t)
|
||||||
{
|
{
|
||||||
return [t->pages count];
|
return [t->pages count];
|
||||||
}
|
}
|
||||||
|
@ -108,6 +108,7 @@ int uiTabMargined(uiTab *t, uintmax_t n)
|
||||||
void uiTabSetMargined(uiTab *t, uintmax_t n, int margined)
|
void uiTabSetMargined(uiTab *t, uintmax_t n, int margined)
|
||||||
{
|
{
|
||||||
NSNumber *v;
|
NSNumber *v;
|
||||||
|
NSView *view;
|
||||||
NSValue *childv;
|
NSValue *childv;
|
||||||
uiControl *child;
|
uiControl *child;
|
||||||
NSView *childView;
|
NSView *childView;
|
||||||
|
|
|
@ -41,7 +41,7 @@ extern void uninitMenus(void);
|
||||||
extern void disableAutocorrect(NSTextView *);
|
extern void disableAutocorrect(NSTextView *);
|
||||||
|
|
||||||
// entry.m
|
// entry.m
|
||||||
extern void finishNewTextField(uiControl *, NSTextField *, BOOL);
|
extern void finishNewTextField(NSTextField *, BOOL);
|
||||||
|
|
||||||
// window.m
|
// window.m
|
||||||
extern uiWindow *windowFromNSWindow(NSWindow *);
|
extern uiWindow *windowFromNSWindow(NSWindow *);
|
||||||
|
|
|
@ -24,27 +24,3 @@ void complain(const char *fmt, ...)
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
// These are based on measurements from Interface Builder.
|
|
||||||
// These seem to be based on Auto Layout constants, but I don't see an API that exposes these...
|
|
||||||
// This one is 8 for most pairs of controls that I've tried; the only difference is between two pushbuttons, where it's 12...
|
|
||||||
#define macXPadding 8
|
|
||||||
// Likewise, this one appears to be 12 for pairs of push buttons...
|
|
||||||
#define macYPadding 8
|
|
||||||
|
|
||||||
uiSizing *uiDarwinNewSizing(void)
|
|
||||||
{
|
|
||||||
uiSizing *d;
|
|
||||||
|
|
||||||
d = uiNew(uiSizing);
|
|
||||||
d->XPadding = macXPadding;
|
|
||||||
d->YPadding = macYPadding;
|
|
||||||
d->Sys = uiNew(uiSizingSys);
|
|
||||||
return d;
|
|
||||||
}
|
|
||||||
|
|
||||||
void uiFreeSizing(uiSizing *d)
|
|
||||||
{
|
|
||||||
uiFree(d->Sys);
|
|
||||||
uiFree(d);
|
|
||||||
}
|
|
||||||
|
|
|
@ -78,7 +78,7 @@ static windowDelegateClass *windowDelegate = nil;
|
||||||
|
|
||||||
static void onDestroy(uiWindow *);
|
static void onDestroy(uiWindow *);
|
||||||
|
|
||||||
uiDarwinDefineControl(
|
uiDarwinDefineControlWithOnDestroy(
|
||||||
uiWindow, // type name
|
uiWindow, // type name
|
||||||
uiWindowType, // type function
|
uiWindowType, // type function
|
||||||
window, // handle
|
window, // handle
|
||||||
|
@ -198,8 +198,8 @@ uiWindow *uiNewWindow(const char *title, int width, int height, int hasMenubar)
|
||||||
uiWindowOnClosing(w, defaultOnClosing, NULL);
|
uiWindowOnClosing(w, defaultOnClosing, NULL);
|
||||||
|
|
||||||
uiDarwinFinishNewControl(w, uiWindow);
|
uiDarwinFinishNewControl(w, uiWindow);
|
||||||
uiControl(w)->CommitShow = windowCommitShow;
|
//TODO uiControl(w)->CommitShow = windowCommitShow;
|
||||||
uiControl(w)->CommitHide = windowCommitHide;
|
//TODO uiControl(w)->CommitHide = windowCommitHide;
|
||||||
|
|
||||||
return w;
|
return w;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,14 +4,14 @@
|
||||||
static uintmax_t type_uiMenu = 0;
|
static uintmax_t type_uiMenu = 0;
|
||||||
static uintmax_t type_uiMenuItem = 0;
|
static uintmax_t type_uiMenuItem = 0;
|
||||||
|
|
||||||
uintmax_t uiTypeMenu(void)
|
uintmax_t uiMenuType(void)
|
||||||
{
|
{
|
||||||
if (type_uiMenu == 0)
|
if (type_uiMenu == 0)
|
||||||
type_uiMenu = uiRegisterType("uiMenu", 0, 0);
|
type_uiMenu = uiRegisterType("uiMenu", 0, 0);
|
||||||
return type_uiMenu;
|
return type_uiMenu;
|
||||||
}
|
}
|
||||||
|
|
||||||
uintmax_t uiTypeMenuItem(void)
|
uintmax_t uiMenuItemType(void)
|
||||||
{
|
{
|
||||||
if (type_uiMenuItem == 0)
|
if (type_uiMenuItem == 0)
|
||||||
type_uiMenuItem = uiRegisterType("uiMenuItem", 0, 0);
|
type_uiMenuItem = uiRegisterType("uiMenuItem", 0, 0);
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "../out/ui.h"
|
#include "../ui.h"
|
||||||
|
|
||||||
// main.c
|
// main.c
|
||||||
extern void die(const char *, ...);
|
extern void die(const char *, ...);
|
||||||
|
|
|
@ -191,7 +191,7 @@ _UI_EXTERN uiSlider *uiNewSlider(intmax_t min, intmax_t max);
|
||||||
typedef struct uiSeparator uiSeparator;
|
typedef struct uiSeparator uiSeparator;
|
||||||
_UI_EXTERN uintmax_t uiSeparatorType(void);
|
_UI_EXTERN uintmax_t uiSeparatorType(void);
|
||||||
#define uiSeparator(this) ((uiSeparator *) uiIsA((this), uiSeparatorType(), 1))
|
#define uiSeparator(this) ((uiSeparator *) uiIsA((this), uiSeparatorType(), 1))
|
||||||
_UI_EXTERN uiSeparator *NewHorizontalSeparator(void);
|
_UI_EXTERN uiSeparator *uiNewHorizontalSeparator(void);
|
||||||
|
|
||||||
typedef struct uiCombobox uiCombobox;
|
typedef struct uiCombobox uiCombobox;
|
||||||
_UI_EXTERN uintmax_t uiComboboxType(void);
|
_UI_EXTERN uintmax_t uiComboboxType(void);
|
||||||
|
@ -217,7 +217,7 @@ typedef struct uiMenu uiMenu;
|
||||||
typedef struct uiMenuItem uiMenuItem;
|
typedef struct uiMenuItem uiMenuItem;
|
||||||
_UI_EXTERN uintmax_t uiMenuType(void);
|
_UI_EXTERN uintmax_t uiMenuType(void);
|
||||||
#define uiMenu(this) ((uiMenu *) uiIsA((this), uiMenuType(), 1))
|
#define uiMenu(this) ((uiMenu *) uiIsA((this), uiMenuType(), 1))
|
||||||
_UI_EXTERN uiMenuItem *uiMenuAppendItem(uiMenu *m, char *name);
|
_UI_EXTERN uiMenuItem *uiMenuAppendItem(uiMenu *m, const char *name);
|
||||||
_UI_EXTERN uiMenuItem *uiMenuAppendCheckItem(uiMenu *m, const char *name);
|
_UI_EXTERN uiMenuItem *uiMenuAppendCheckItem(uiMenu *m, const char *name);
|
||||||
_UI_EXTERN uiMenuItem *uiMenuAppendQuitItem(uiMenu *m);
|
_UI_EXTERN uiMenuItem *uiMenuAppendQuitItem(uiMenu *m);
|
||||||
_UI_EXTERN uiMenuItem *uiMenuAppendPreferencesItem(uiMenu *m);
|
_UI_EXTERN uiMenuItem *uiMenuAppendPreferencesItem(uiMenu *m);
|
||||||
|
@ -233,9 +233,9 @@ _UI_EXTERN void uiMenuItemOnClicked(uiMenuItem *m, void (*f)(uiMenuItem *sender,
|
||||||
_UI_EXTERN int uiMenuItemChecked(uiMenuItem *m);
|
_UI_EXTERN int uiMenuItemChecked(uiMenuItem *m);
|
||||||
_UI_EXTERN void uiMenuItemSetChecked(uiMenuItem *m, int checked);
|
_UI_EXTERN void uiMenuItemSetChecked(uiMenuItem *m, int checked);
|
||||||
|
|
||||||
_UI_EXTERN char *OpenFile(void);
|
_UI_EXTERN char *uiOpenFile(void);
|
||||||
_UI_EXTERN char *SaveFile(void);
|
_UI_EXTERN char *uiSaveFile(void);
|
||||||
_UI_EXTERN void MsgBox(const char *title, const char *description);
|
_UI_EXTERN void uiMsgBox(const char *title, const char *description);
|
||||||
_UI_EXTERN void MsgBoxError(const char *title, const char *description);
|
_UI_EXTERN void uiMsgBoxError(const char *title, const char *description);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue