Nilorea Library
C utilities for networking, threading, graphics
Loading...
Searching...
No Matches
ex_gui_multiwin.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "nilorea/n_common.h"
#include "nilorea/n_clipboard.h"
#include "nilorea/n_gui.h"
#include "nilorea/n_log.h"
+ Include dependency graph for ex_gui_multiwin.c:

Go to the source code of this file.

Macros

#define ALLEGRO_UNSTABLE   1
 
#define MAIN_H   480
 
#define MAIN_W   640
 
#define POPUP_H   160
 
#define POPUP_W   240
 

Functions

static void check_shared_resources (const char *who, ALLEGRO_DISPLAY *d, ALLEGRO_FONT *font, ALLEGRO_BITMAP *bmp)
 
static void click_on (N_GUI_CTX *gui, ALLEGRO_DISPLAY *from, int x, int y)
 
static int count_pixels_differing (ALLEGRO_BITMAP *bmp, int x, int y, int w, int h, ALLEGRO_COLOR ref)
 
static void ctrl_key (N_GUI_CTX *gui, ALLEGRO_DISPLAY *from, int keycode)
 
static void expect_eq_float (const char *label, float got, float want)
 
static void expect_eq_int (const char *label, int got, int want)
 
static void expect_true (const char *label, int cond)
 
int main (int argc, char **argv)
 
static void on_main_click (int widget_id, void *user_data)
 
static void on_popup_click (int widget_id, void *user_data)
 
static void on_popup_close (int window_id, void *user_data)
 
static int process_args (int argc, char **argv)
 
static void sample_chrome_titlebar (int window_id, void *user_data)
 

Variables

static int failures = 0
 
static int g_chrome_titlebar_lit = -1
 
static int g_closed_id = -1
 
static int g_main_clicks = 0
 
static int g_popup_clicks = 0
 
static int log_level = 3
 

Macro Definition Documentation

◆ ALLEGRO_UNSTABLE

#define ALLEGRO_UNSTABLE   1

Definition at line 33 of file ex_gui_multiwin.c.

◆ MAIN_H

#define MAIN_H   480
Examples
ex_gui_multiwin.c.

Definition at line 46 of file ex_gui_multiwin.c.

◆ MAIN_W

#define MAIN_W   640
Examples
ex_gui_multiwin.c.

Definition at line 45 of file ex_gui_multiwin.c.

◆ POPUP_H

#define POPUP_H   160
Examples
ex_gui_multiwin.c.

Definition at line 48 of file ex_gui_multiwin.c.

◆ POPUP_W

#define POPUP_W   240
Examples
ex_gui_multiwin.c.

Definition at line 47 of file ex_gui_multiwin.c.

Function Documentation

◆ check_shared_resources()

static void check_shared_resources ( const char *  who,
ALLEGRO_DISPLAY *  d,
ALLEGRO_FONT *  font,
ALLEGRO_BITMAP *  bmp 
)
static
Examples
ex_gui_multiwin.c.

Definition at line 204 of file ex_gui_multiwin.c.

References count_pixels_differing(), and expect_true().

Referenced by main().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ click_on()

static void click_on ( N_GUI_CTX gui,
ALLEGRO_DISPLAY *  from,
int  x,
int  y 
)
static
Examples
ex_gui_multiwin.c.

Definition at line 133 of file ex_gui_multiwin.c.

References gui, and n_gui_process_event().

Referenced by main().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ count_pixels_differing()

static int count_pixels_differing ( ALLEGRO_BITMAP *  bmp,
int  x,
int  y,
int  w,
int  h,
ALLEGRO_COLOR  ref 
)
static
Examples
ex_gui_multiwin.c.

Definition at line 160 of file ex_gui_multiwin.c.

Referenced by check_shared_resources(), main(), and sample_chrome_titlebar().

+ Here is the caller graph for this function:

◆ ctrl_key()

static void ctrl_key ( N_GUI_CTX gui,
ALLEGRO_DISPLAY *  from,
int  keycode 
)
static
Examples
ex_gui_multiwin.c.

Definition at line 147 of file ex_gui_multiwin.c.

References gui, and n_gui_process_event().

Referenced by main().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ expect_eq_float()

static void expect_eq_float ( const char *  label,
float  got,
float  want 
)
static
Examples
ex_gui_multiwin.c.

Definition at line 102 of file ex_gui_multiwin.c.

References failures, LOG_ERR, LOG_INFO, and n_log.

Referenced by main().

+ Here is the caller graph for this function:

◆ expect_eq_int()

static void expect_eq_int ( const char *  label,
int  got,
int  want 
)
static
Examples
ex_gui_multiwin.c.

Definition at line 93 of file ex_gui_multiwin.c.

References failures, LOG_ERR, LOG_INFO, and n_log.

Referenced by main().

+ Here is the caller graph for this function:

◆ expect_true()

static void expect_true ( const char *  label,
int  cond 
)
static

Definition at line 84 of file ex_gui_multiwin.c.

References failures, LOG_ERR, LOG_INFO, and n_log.

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 227 of file ex_gui_multiwin.c.

References N_GUI_CTX::active_display, check_shared_resources(), click_on(), count_pixels_differing(), ctrl_key(), expect_eq_float(), expect_eq_int(), expect_true(), failures, N_GUI_WINDOW::flags, g_chrome_titlebar_lit, g_closed_id, g_main_clicks, g_popup_clicks, N_GUI_STYLE::grip_size, gui, N_GUI_WINDOW::h, LOG_ERR, log_level, LOG_NOTICE, LOG_NULL, MAIN_H, MAIN_W, N_GUI_WINDOW::min_h, N_GUI_WINDOW::min_w, n_clipboard_available(), N_CLIPBOARD_CLIPBOARD, n_clipboard_get(), n_gui_add_button(), n_gui_add_textarea(), n_gui_add_window(), n_gui_close_window(), n_gui_count_detached(), n_gui_destroy_ctx(), N_GUI_DETACH_OWN_CHROME, N_GUI_DETACH_RESIZABLE, n_gui_draw(), n_gui_draw_detached(), n_gui_get_event_queue(), n_gui_get_window(), n_gui_load_layout_json(), n_gui_maximize_window(), n_gui_minimize_window(), n_gui_new_ctx(), n_gui_open_window(), n_gui_process_event(), n_gui_restore_window(), n_gui_save_layout_json(), n_gui_set_display(), n_gui_set_display_size(), n_gui_set_event_queue(), n_gui_set_focus(), N_GUI_SHAPE_RECT, n_gui_textarea_set_text(), n_gui_wants_mouse(), N_GUI_WIN_BTN_ALL, N_GUI_WIN_DRAGGING, N_GUI_WIN_FRAMELESS, N_GUI_WIN_MAXIMISED, N_GUI_WIN_MINIMISED, N_GUI_WIN_RESIZABLE, N_GUI_WIN_RESIZING, n_gui_window_attach(), n_gui_window_detach(), n_gui_window_from_display(), n_gui_window_get_display(), n_gui_window_get_flags(), n_gui_window_is_detached(), n_gui_window_is_open(), n_gui_window_native_is_hidden(), n_gui_window_set_close_callback(), n_gui_window_set_content_draw_callback(), n_gui_window_set_flags(), n_gui_window_set_native_icons(), n_log, on_main_click(), on_popup_click(), on_popup_close(), POPUP_H, POPUP_W, process_args(), sample_chrome_titlebar(), N_GUI_WINDOW::saved_h, N_GUI_WINDOW::saved_w, set_log_level(), N_GUI_WINDOW::state, N_GUI_CTX::style, N_GUI_STYLE::tb_btn_right_margin, N_GUI_STYLE::tb_btn_size, N_GUI_STYLE::tb_btn_spacing, N_GUI_WINDOW::titlebar_h, N_GUI_WINDOW::w, N_GUI_WINDOW::x, and N_GUI_WINDOW::y.

+ Here is the call graph for this function:

◆ on_main_click()

static void on_main_click ( int  widget_id,
void *  user_data 
)
static
Examples
ex_gui_multiwin.c.

Definition at line 113 of file ex_gui_multiwin.c.

References g_main_clicks.

Referenced by main().

+ Here is the caller graph for this function:

◆ on_popup_click()

static void on_popup_click ( int  widget_id,
void *  user_data 
)
static
Examples
ex_gui_multiwin.c.

Definition at line 119 of file ex_gui_multiwin.c.

References g_popup_clicks.

Referenced by main().

+ Here is the caller graph for this function:

◆ on_popup_close()

static void on_popup_close ( int  window_id,
void *  user_data 
)
static
Examples
ex_gui_multiwin.c.

Definition at line 125 of file ex_gui_multiwin.c.

References g_closed_id.

Referenced by main().

+ Here is the caller graph for this function:

◆ process_args()

static int process_args ( int  argc,
char **  argv 
)
static

Definition at line 59 of file ex_gui_multiwin.c.

References LOG_DEBUG, LOG_ERR, LOG_INFO, log_level, LOG_NOTICE, and LOG_NULL.

◆ sample_chrome_titlebar()

static void sample_chrome_titlebar ( int  window_id,
void *  user_data 
)
static
Examples
ex_gui_multiwin.c.

Definition at line 193 of file ex_gui_multiwin.c.

References N_GUI_THEME::bg_normal, count_pixels_differing(), g_chrome_titlebar_lit, n_gui_get_window(), and N_GUI_WINDOW::theme.

Referenced by main().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ failures

int failures = 0
static

Definition at line 51 of file ex_gui_multiwin.c.

◆ g_chrome_titlebar_lit

int g_chrome_titlebar_lit = -1
static
Examples
ex_gui_multiwin.c.

Definition at line 178 of file ex_gui_multiwin.c.

Referenced by main(), and sample_chrome_titlebar().

◆ g_closed_id

int g_closed_id = -1
static
Examples
ex_gui_multiwin.c.

Definition at line 57 of file ex_gui_multiwin.c.

Referenced by main(), and on_popup_close().

◆ g_main_clicks

int g_main_clicks = 0
static
Examples
ex_gui_multiwin.c.

Definition at line 54 of file ex_gui_multiwin.c.

Referenced by main(), and on_main_click().

◆ g_popup_clicks

int g_popup_clicks = 0
static
Examples
ex_gui_multiwin.c.

Definition at line 55 of file ex_gui_multiwin.c.

Referenced by main(), and on_popup_click().

◆ log_level

int log_level = 3
static

Definition at line 50 of file ex_gui_multiwin.c.