client: merge titlebar_{set,get} into index

Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
Julien Danjou 2008-07-01 22:19:23 +02:00
parent 8646d06fab
commit 52ba1392c6
2 changed files with 32 additions and 66 deletions

View File

@ -1101,67 +1101,6 @@ luaA_client_tostring(lua_State *L)
return 1; return 1;
} }
/** Set the client's titlebar.
* \param L The Lua VM state.
* \luastack
* \lvalue A client.
* \lparam A titlebar.
*/
static int
luaA_client_titlebar_set(lua_State *L)
{
client_t **c = luaA_checkudata(L, 1, "client");
titlebar_t **t = NULL;
if(lua_gettop(L) == 2 && !lua_isnil(L, 2))
{
t = luaA_checkudata(L, 2, "titlebar");
if(client_getbytitlebar(*t))
luaL_error(L, "titlebar is already used by another client");
}
/* If client had a titlebar, unref it */
if((*c)->titlebar)
{
simplewindow_delete(&(*c)->titlebar->sw);
titlebar_unref(&(*c)->titlebar);
}
if(t)
{
/* Attach titlebar to client */
(*c)->titlebar = *t;
titlebar_ref(t);
titlebar_init(*c);
}
else
(*c)->titlebar = NULL;
if((*c)->isfloating || layout_get_current((*c)->screen) == layout_floating)
titlebar_update_geometry_floating(*c);
else
globalconf.screens[(*c)->screen].need_arrange = true;
return 0;
}
/** Get the titlebar of a client.
* \param L The Lua VM state.
* \luastack
* \lvalue A client.
* \lreturn A titlebar or nil if the client has no titlebar.
*/
static int
luaA_client_titlebar_get(lua_State *L)
{
client_t **c = luaA_checkudata(L, 1, "client");
if((*c)->titlebar)
return luaA_titlebar_userdata_new(globalconf.L, (*c)->titlebar);
return 0;
}
/** Stop managing a client. /** Stop managing a client.
* \param L The Lua VM state. * \param L The Lua VM state.
* \luastack * \luastack
@ -1189,6 +1128,7 @@ luaA_client_newindex(lua_State *L)
double d; double d;
int i; int i;
xcolor_t color; xcolor_t color;
titlebar_t **t = NULL;
switch(a_tokenize(buf, len)) switch(a_tokenize(buf, len))
{ {
@ -1258,6 +1198,31 @@ luaA_client_newindex(lua_State *L)
geometry.height = luaA_getopt_number(L, 3, "height", (*c)->geometry.height); geometry.height = luaA_getopt_number(L, 3, "height", (*c)->geometry.height);
client_resize(*c, geometry, false); client_resize(*c, geometry, false);
} }
break;
case A_TK_TITLEBAR:
if(!lua_isnil(L, 3))
{
t = luaA_checkudata(L, 3, "titlebar");
if(client_getbytitlebar(*t))
luaL_error(L, "titlebar is already used by another client");
}
/* If client had a titlebar, unref it */
if((*c)->titlebar)
{
simplewindow_delete(&(*c)->titlebar->sw);
titlebar_unref(&(*c)->titlebar);
globalconf.screens[(*c)->screen].need_arrange = true;
}
if(t)
{
/* Attach titlebar to client */
(*c)->titlebar = *t;
titlebar_ref(t);
titlebar_init(*c);
}
break; break;
default: default:
return 0; return 0;
@ -1293,9 +1258,7 @@ luaA_client_index(lua_State *L)
lua_pushstring(L, hint.res_class); lua_pushstring(L, hint.res_class);
return 2; return 2;
} }
else return 0;
return 0;
break;
case A_TK_FLOATING_PLACEMENT: case A_TK_FLOATING_PLACEMENT:
lua_pushstring(L, name_func_rlookup((*c)->floating_placement, lua_pushstring(L, name_func_rlookup((*c)->floating_placement,
FloatingPlacementList)); FloatingPlacementList));
@ -1332,6 +1295,10 @@ luaA_client_index(lua_State *L)
lua_pushnumber(L, (*c)->geometry.y); lua_pushnumber(L, (*c)->geometry.y);
lua_setfield(L, -2, "y"); lua_setfield(L, -2, "y");
break; break;
case A_TK_TITLEBAR:
if((*c)->titlebar)
return luaA_titlebar_userdata_new(globalconf.L, (*c)->titlebar);
return 0;
default: default:
return 0; return 0;
} }
@ -1348,8 +1315,6 @@ const struct luaL_reg awesome_client_methods[] =
}; };
const struct luaL_reg awesome_client_meta[] = const struct luaL_reg awesome_client_meta[] =
{ {
{ "titlebar_set", luaA_client_titlebar_set },
{ "titlebar_get", luaA_client_titlebar_get },
{ "tag", luaA_client_tag }, { "tag", luaA_client_tag },
{ "istagged", luaA_client_istagged }, { "istagged", luaA_client_istagged },
{ "kill", luaA_client_kill }, { "kill", luaA_client_kill },

View File

@ -55,6 +55,7 @@ text_normal
text_urgent text_urgent
ticks_count ticks_count
ticks_gap ticks_gap
titlebar
top top
topleft topleft
topright topright