Other build issues fixed. Now for other issues.

This commit is contained in:
Pietro Gagliardi 2015-08-16 23:44:23 -04:00
parent 13e90c4263
commit 4a9d0081a3
17 changed files with 40 additions and 56 deletions

View File

@ -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));

View File

@ -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);

View File

@ -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));

View File

@ -8,7 +8,7 @@ struct uiDateTimePicker {
uiDarwinDefineControl( uiDarwinDefineControl(
uiDateTimePicker, // type name uiDateTimePicker, // type name
uiDaateTimePickerType, // type function uiDateTimePickerType, // type function
dp // handle dp // handle
) )

View File

@ -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;

View File

@ -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]);
} }

View File

@ -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

View File

@ -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);

View File

@ -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 *);

View File

@ -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);

View File

@ -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;

View File

@ -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 *);

View File

@ -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);
}

View File

@ -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;
} }

View File

@ -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);

View File

@ -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 *, ...);

View File

@ -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