#include "ekg2-config.h"
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "commands.h"
#include "dynstuff.h"
#include "windows.h"
#include "userlist.h"
#include "sessions.h"
#include "themes.h"
#include "stuff.h"
#include "xmalloc.h"
#include "dynstuff_inline.h"
#include "queries.h"
Funkcje |
static int | window_new_compare (window_t *data1, window_t *data2) |
static | LIST_FREE_ITEM (list_window_free, window_t *) |
static | __DYNSTUFF_LIST_ADD_SORTED (windows, window_t, window_new_compare) |
static | __DYNSTUFF_LIST_UNLINK (windows, window_t) |
static | __DYNSTUFF_LIST_REMOVE_SAFE (windows, window_t, list_window_free) |
| __DYNSTUFF_LIST_DESTROY (windows, window_t, list_window_free) |
window_t * | window_find_ptr (window_t *w) |
window_t * | window_find_sa (session_t *session, const char *target, int session_null_means_no_session) |
window_t * | window_find (const char *target) |
void | window_switch (int id) |
window_t * | window_new (const char *target, session_t *session, int new_id) |
void | window_print (window_t *w, fstring_t *line) |
void | window_next () |
void | window_prev () |
void | window_kill (window_t *w) |
window_t * | window_exist (int id) |
static void | window_move (int first, int second) |
static void | window_real_move (int source, int dest) |
char * | window_target (window_t *window) |
int | cmd_window (const char *name, const char **params, session_t *session, const char *target, int quiet) |
void | window_session_set (window_t *w, session_t *new_session) |
int | window_session_cycle (window_t *w) |
int | window_lock_inc (window_t *w) |
int | window_lock_dec (window_t *w) |
Zmienne |
int | window_last_id = -1 |
window_t * | windows = NULL |
int | config_display_crap = 1 |
window_t * | window_current = NULL |
window_t * | window_status = NULL |
window_t * | window_debug = NULL |
window_lastlog_t * | lastlog_current = NULL |
Dokumentacja funkcji
static __DYNSTUFF_LIST_ADD_SORTED |
( |
windows |
, |
|
|
window_t |
, |
|
|
window_new_compare |
|
|
) |
| [static] |
static __DYNSTUFF_LIST_REMOVE_SAFE |
( |
windows |
, |
|
|
window_t |
, |
|
|
list_window_free |
|
|
) |
| [static] |
int cmd_window |
( |
const char * |
name, |
|
|
const char ** |
params, |
|
|
session_t * |
session, |
|
|
const char * |
target, |
|
|
int |
quiet |
|
) |
| |
static LIST_FREE_ITEM |
( |
list_window_free |
, |
|
|
window_t * |
|
|
) |
| [static] |
window_t* window_find |
( |
const char * |
target | ) |
|
window_find()
Seeks for an window with given target
Wrapper to: window_find_sa(NULL, target, 0);
- Nota:
- It's really slow, and you should avoid using it. You'll never know if you found good window... so use window_find_s()
- Parametry:
-
- Zobacz również:
- window_find_s() - If you know session.
- Zwraca:
- pointer to window_t struct if window was founded, else NULL
window_find_ptr()
it's search over window list and checks if param w is still on that list.
- Nota:
- It's possible to find another window with the same address as old one.. it's rather not possible.. however, It's better if you use other functions...
- Zobacz również:
- window_find() - If you want to search for window target, instead of window ptr.
-
window_find_s() - If you want to search for window session && target, instead of window ptr.
-
window_exist - If you want to search for window id, instead of window ptr.
- Parametry:
-
- Zwraca:
- It returns w if window was found, otherwise NULL.
window_t* window_find_sa |
( |
session_t * |
session, |
|
|
const char * |
target, |
|
|
int |
session_null_means_no_session |
|
) |
| |
window_find_sa()
Search for an window with given target and session
- Parametry:
-
session | - window session to search [See also @ session_null_means_no_session] |
target | - window target to search |
session_null_means_no_session | - if you know that this window must belong to given session [NULL, or whatever] so this should be 1. else NULL @ session will mean that you don't know which session should it be. And it'll search/check all sessions |
- Zobacz również:
- window_find_ptr() - If you want to search for given window ptr.
-
window_find_s() - macro to
window_find_sa(session, target, 1)
-
window_find() - wrapper to
window_find_sa(NULL, target, 0)
- Zwraca:
- pointer to window_t struct if window was founded, else NULL
window_kill()
Remove given window.
If it's __status window, and w->target than display nice message about closing talk, else display message about no possibility to close status window
- Nota:
- You cannot remove here __status and __debug windows.
You must do it by hand like in ekg_exit() but if you want do it.
Set window_debug and window_status for proper values.
ekg2 core need them.
- Błąd:
- Possible bug with sort_windows. Can anyone who wrote it look at it?
- Parametry:
-
static void window_move |
( |
int |
first, |
|
|
int |
second |
|
) |
| [static] |
window_move()
swap windows (swap windows id -> change sequence of them in UI)
- Parametry:
-
first | - 1st window id. |
second | - 2nd window id. |
- Do zrobienia:
- XXX: Rename to _swap, and make some real move.
window_new()
Create new window_t, with given new_id (if new_id != 0)
- Nota:
- If target == "$" than it return current window. [POSSIBLE BUG] If window with such target [it can also be u->uid/u->nickname combination] exists. than it'll return it.
-
You shouldn't pass new_id here. Because it can break UI stuff. don't ask. it's wrong. Just don't use it. It'll be possible removed... In case you really need it, you can talk to the devs, and ask for an id from class: 1000 to 1999
- Do zrobienia:
- See XXX's
- Parametry:
-
target | - name of window |
session | - session of this window |
new_id | - if different than 0, than window will take this id. |
- Zwraca:
- window_t struct
static void window_real_move |
( |
int |
source, |
|
|
int |
dest |
|
) |
| [static] |
int window_session_cycle |
( |
window_t * |
w | ) |
|
window_session_cycle()
Change session of given window to next good one (based on config_window_session_allow value)
- Nota:
- behaviour of window_session_cycle() based on values of config_window_session_allow: 0 - change session only if w->target == NULL 1 - like 0 + if w->target is set than new session must accept that uid [default && other values] 2 - change to any next session 4 - jump to status window before cycling.
-
If w->session was changed than UI_WINDOW_TARGET_CHANGED will be emited. If w == window_current than SESSION_CHANGED will be emited also.
- Do zrobienia:
- Gdy config_window_session_allow == 2, to najpierw sprobowac znalezc dobra sesje a potem jesli nie to nastepna?
- Parametry:
-
- Zwraca:
- 0 - if session of window was changed -1 - if not
void window_switch |
( |
int |
id | ) |
|
char* window_target |
( |
window_t * |
window | ) |
|
window_target()
- Parametry:
-
- Do zrobienia:
- Make it const?
- Zwraca:
- Never NULL pointer [to don't care about it] look below for more details: if window->target is not NULL return it
else:
- __current if window is NULL
- __status if window->id == 1
- __debug if window->id == 0
else return ""
Dokumentacja zmiennych