mirror of
https://github.com/irssi/irssi.git
synced 2026-08-22 18:12:12 +02:00
Helper function for getting window item type
This commit is contained in:
parent
17021e167c
commit
f272976505
2 changed files with 28 additions and 0 deletions
|
|
@ -138,6 +138,23 @@ void window_item_set_active(WINDOW_REC *window, WI_ITEM_REC *item)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WindowType window_item_get_type(WI_ITEM_REC *item)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail(item != NULL, WITEM_TYPE_OTHER);
|
||||||
|
|
||||||
|
const char *type = module_find_id_str("WINDOW ITEM TYPE", item->type);
|
||||||
|
if (g_ascii_strcasecmp(type, "CHANNEL") == 0)
|
||||||
|
return WITEM_TYPE_CHANNEL;
|
||||||
|
else if (g_ascii_strcasecmp(type, "QUERY") == 0) {
|
||||||
|
if (g_str_has_prefix("=", item->name))
|
||||||
|
return WITEM_TYPE_QUERY | WITEM_TYPE_DCCCHAT;
|
||||||
|
else
|
||||||
|
return WITEM_TYPE_QUERY | WITEM_TYPE_PRIVMSG;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return WITEM_TYPE_OTHER;
|
||||||
|
}
|
||||||
|
|
||||||
/* Return TRUE if `item' is the active window item in the window.
|
/* Return TRUE if `item' is the active window item in the window.
|
||||||
`item' can be NULL. */
|
`item' can be NULL. */
|
||||||
int window_item_is_active(WI_ITEM_REC *item)
|
int window_item_is_active(WI_ITEM_REC *item)
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,14 @@
|
||||||
|
|
||||||
#include "fe-windows.h"
|
#include "fe-windows.h"
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
WITEM_TYPE_CHANNEL = 1,
|
||||||
|
WITEM_TYPE_QUERY = 2,
|
||||||
|
WITEM_TYPE_PRIVMSG = 4,
|
||||||
|
WITEM_TYPE_DCCCHAT = 8,
|
||||||
|
WITEM_TYPE_OTHER = 16
|
||||||
|
} WindowType;
|
||||||
|
|
||||||
/* Add/remove/destroy window item from `window' */
|
/* Add/remove/destroy window item from `window' */
|
||||||
void window_item_add(WINDOW_REC *window, WI_ITEM_REC *item, int automatic);
|
void window_item_add(WINDOW_REC *window, WI_ITEM_REC *item, int automatic);
|
||||||
void window_item_remove(WI_ITEM_REC *item);
|
void window_item_remove(WI_ITEM_REC *item);
|
||||||
|
|
@ -23,6 +31,9 @@ int window_item_is_active(WI_ITEM_REC *item);
|
||||||
void window_item_prev(WINDOW_REC *window);
|
void window_item_prev(WINDOW_REC *window);
|
||||||
void window_item_next(WINDOW_REC *window);
|
void window_item_next(WINDOW_REC *window);
|
||||||
|
|
||||||
|
// return WindowType depending on what WI_ITEM_REC is
|
||||||
|
WindowType window_item_get_type(WI_ITEM_REC *item);
|
||||||
|
|
||||||
/* Find wanted window item by name. `server' can be NULL. */
|
/* Find wanted window item by name. `server' can be NULL. */
|
||||||
WI_ITEM_REC *window_item_find(void *server, const char *name);
|
WI_ITEM_REC *window_item_find(void *server, const char *name);
|
||||||
WI_ITEM_REC *window_item_find_window(WINDOW_REC *window,
|
WI_ITEM_REC *window_item_find_window(WINDOW_REC *window,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue