Skip to content

Commit d4ecc16

Browse files
committed
Add method for removing ComboBox item
void uiComboboxDelete(uiCombobox *c, int n) * Unix: gtk_combo_box_text_remove * Windows: CB_DELETESTRING * Darwin: NSPopUpButton.removeItemAtIndex
1 parent 17486fd commit d4ecc16

5 files changed

Lines changed: 28 additions & 0 deletions

File tree

darwin/combobox.m

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,11 @@ void uiComboboxAppend(uiCombobox *c, const char *text)
8181
[c->pbac addObject:uiprivToNSString(text)];
8282
}
8383

84+
void uiComboboxDelete(uiCombobox *c, int n)
85+
{
86+
[c->pb removeItemAtIndex:n];
87+
}
88+
8489
int uiComboboxSelected(uiCombobox *c)
8590
{
8691
return [c->pb indexOfSelectedItem];

test/page4.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@ static void appendCBRB(uiButton *b, void *data)
3939
uiRadioButtonsAppend(rb, "New Item");
4040
}
4141

42+
static void deleteCB(uiButton *b, void *data)
43+
{
44+
uiComboboxDelete(cbox, 0);
45+
}
46+
4247
static void onCBChanged(uiCombobox *c, void *data)
4348
{
4449
printf("%s combobox changed to %d\n",
@@ -147,6 +152,9 @@ uiBox *makePage4(void)
147152
b = uiNewButton("Append");
148153
uiButtonOnClicked(b, appendCBRB, NULL);
149154
uiBoxAppend(hbox, uiControl(b), 0);
155+
b = uiNewButton("Delete");
156+
uiButtonOnClicked(b, deleteCB, NULL);
157+
uiBoxAppend(hbox, uiControl(b), 0);
150158
b = uiNewButton("Second");
151159
uiButtonOnClicked(b, selectSecond, NULL);
152160
uiBoxAppend(hbox, uiControl(b), 0);

ui.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,7 @@ _UI_EXTERN uiSeparator *uiNewVerticalSeparator(void);
226226
typedef struct uiCombobox uiCombobox;
227227
#define uiCombobox(this) ((uiCombobox *) (this))
228228
_UI_EXTERN void uiComboboxAppend(uiCombobox *c, const char *text);
229+
_UI_EXTERN void uiComboboxDelete(uiCombobox *c, int n);
229230
_UI_EXTERN int uiComboboxSelected(uiCombobox *c);
230231
_UI_EXTERN void uiComboboxSetSelected(uiCombobox *c, int n);
231232
_UI_EXTERN void uiComboboxOnSelected(uiCombobox *c, void (*f)(uiCombobox *c, void *data), void *data);

unix/combobox.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ void uiComboboxAppend(uiCombobox *c, const char *text)
3030
gtk_combo_box_text_append(c->comboboxText, NULL, text);
3131
}
3232

33+
void uiComboboxDelete(uiCombobox *c, int n)
34+
{
35+
gtk_combo_box_text_remove(c->comboboxText, n);
36+
}
37+
3338
int uiComboboxSelected(uiCombobox *c)
3439
{
3540
return gtk_combo_box_get_active(c->combobox);

windows/combobox.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,15 @@ void uiComboboxAppend(uiCombobox *c, const char *text)
6969
uiprivFree(wtext);
7070
}
7171

72+
void uiComboboxDelete(uiCombobox *c, int n)
73+
{
74+
LRESULT res;
75+
76+
res = SendMessage(c->hwnd, CB_DELETESTRING, (WPARAM)n, 0);
77+
if (res == (LRESULT) CB_ERR)
78+
logLastError(L"error removing item from uiCombobox");
79+
}
80+
7281
int uiComboboxSelected(uiCombobox *c)
7382
{
7483
LRESULT n;

0 commit comments

Comments
 (0)