Ejemplo n.º 1
0
void clientlist_init() {
    // init regex simple..
    fetch_colors();
    g_wmatom[WMProtocols] = XInternAtom(g_display, "WM_PROTOCOLS", False);
    g_wmatom[WMDelete] = XInternAtom(g_display, "WM_DELETE_WINDOW", False);
    g_wmatom[WMState] = XInternAtom(g_display, "WM_STATE", False);
    g_wmatom[WMTakeFocus] = XInternAtom(g_display, "WM_TAKE_FOCUS", False);
    // init actual client list
    g_client_object = hsobject_create_and_link(hsobject_root(), "clients");
    g_clients = g_hash_table_new_full(g_int_hash, g_int_equal,
                                      NULL, (GDestroyNotify)client_destroy);
}
Ejemplo n.º 2
0
void settings_init() {
    // recreate all strings -> move them to heap
    for (int i = 0; i < LENGTH(g_settings); i++) {
        if (g_settings[i].type == HS_String) {
            g_settings[i].value.str = g_string_new(g_settings[i].value.s_init);
        }
        if (g_settings[i].type == HS_Int) {
            g_settings[i].old_value_i = 1;
        }
    }
    settings_find("monitors_locked")->value.i = g_initial_monitors_locked;

    // create a settings object
    g_settings_object = hsobject_create_and_link(hsobject_root(), "settings");
    // ensure everything is nulled that is not explicitely initialized
    HSAttribute* attributes = g_new0(HSAttribute, LENGTH(g_settings)+1);
    HSAttribute last = ATTRIBUTE_LAST;
    attributes[LENGTH(g_settings)] = last;
    for (int i = 0; i < LENGTH(g_settings); i++) {
        SettingsPair* sp = g_settings + i;
        if (sp->type == HS_String) {
            HSAttribute cur =
                ATTRIBUTE(sp->name, sp->value.str, cb_on_change);
            attributes[i] = cur;
        } else if (sp->type == HS_Int) {
            HSAttribute cur =
                ATTRIBUTE(sp->name, sp->value.i, cb_on_change);
            attributes[i] = cur;
        } else if (sp->type == HS_Compatiblity) {
            HSAttribute cur =
                ATTRIBUTE_CUSTOM(sp->name, (HSAttributeCustom)cb_read_compat, cb_write_compat);
            cur.data = sp;
            attributes[i] = cur;
        }
    }
    hsobject_set_attributes(g_settings_object, attributes);
    g_free(attributes);
}
Ejemplo n.º 3
0
Archivo: object.c Proyecto: xiaq/hlwm
void object_tree_init() {
    hsobject_init(&g_root_object);
    g_tmp_object = hsobject_create_and_link(&g_root_object, TMP_OBJECT_PATH);

}