本文整理汇总了C++中PyXBMCGUILock函数的典型用法代码示例。如果您正苦于以下问题:C++ PyXBMCGUILock函数的具体用法?C++ PyXBMCGUILock怎么用?C++ PyXBMCGUILock使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了PyXBMCGUILock函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: WindowXML_GetListItem
PyObject* WindowXML_GetListItem(WindowXML *self, PyObject *args)
{
if (!self->pWindow) return NULL;
int listPos = -1;
if (!PyArg_ParseTuple(args, (char*)"i", &listPos)) return NULL;
CGUIPythonWindowXML * pwx = (CGUIPythonWindowXML*)self->pWindow;
PyXBMCGUILock();
CFileItemPtr fi = pwx->GetListItem(listPos);
if (fi == NULL)
{
PyXBMCGUIUnlock();
PyErr_SetString(PyExc_TypeError, "Index out of range");
return NULL;
}
ListItem* sListItem = (ListItem*)ListItem_Type.tp_alloc(&ListItem_Type, 0);
sListItem->item = fi;
PyXBMCGUIUnlock();
Py_INCREF(sListItem);
return (PyObject *)sListItem;
}
示例2: WindowXML_SetProperty
PyObject* WindowXML_SetProperty(WindowXML *self, PyObject *args, PyObject *kwds)
{
static const char *keywords[] = { "key", "value", NULL };
char *key = NULL;
PyObject *value = NULL;
if (!PyArg_ParseTupleAndKeywords(
args,
kwds,
(char*)"sO",
(char**)keywords,
&key,
&value))
{
return NULL;
}
if (!key || !value) return NULL;
CStdString uText;
if (!PyXBMCGetUnicodeString(uText, value, 1))
return NULL;
CGUIPythonWindowXML * pwx = (CGUIPythonWindowXML*)self->pWindow;
CStdString lowerKey = key;
PyXBMCGUILock();
pwx->SetProperty(lowerKey.ToLower(), uText.c_str());
PyXBMCGUIUnlock();
Py_INCREF(Py_None);
return Py_None;
}
示例3: Control_ControlRight
PyObject* Control_ControlRight(Control* self, PyObject* args)
{
Control* pControl;
if (!PyArg_ParseTuple(args, (char*)"O", &pControl)) return NULL;
// type checking, object should be of type Control
if (!Control_Check(pControl))
{
PyErr_SetString(PyExc_TypeError, "Object should be of type Control");
return NULL;
}
if(self->iControlId == 0)
{
PyErr_SetString(PyExc_ReferenceError, "Control has to be added to a window first");
return NULL;
}
self->iControlRight = pControl->iControlId;
PyXBMCGUILock();
if (self->pGUIControl) self->pGUIControl->SetNavigation(self->iControlUp,
self->iControlDown,self->iControlLeft,self->iControlRight);
PyXBMCGUIUnlock();
Py_INCREF(Py_None);
return Py_None;
}
示例4: Keyboard_New
PyObject* Keyboard_New(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
Keyboard *self;
self = (Keyboard*)type->tp_alloc(type, 0);
if (!self) return NULL;
new(&self->strDefault) string();
new(&self->strHeading) string();
PyObject *line = NULL;
PyObject *heading = NULL;
char bHidden = false;
if (!PyArg_ParseTuple(args, (char*)"|OOb", &line, &heading, &bHidden)) return NULL;
string utf8Line;
if (line && !PyXBMCGetUnicodeString(utf8Line, line, 1)) return NULL;
string utf8Heading;
if (heading && !PyXBMCGetUnicodeString(utf8Heading, heading, 2)) return NULL;
self->strDefault = utf8Line;
self->strHeading = utf8Heading;
self->bHidden = (0 != bHidden);
PyXBMCGUILock();
self->dlg = (CGUIDialogKeyboard*)g_windowManager.GetWindow(WINDOW_DIALOG_KEYBOARD);
PyXBMCGUIUnlock();
return (PyObject*)self;
}
示例5: XBMCGUI_GetCurrentWindowId
PyObject* XBMCGUI_GetCurrentWindowId(PyObject *self, PyObject *args)
{
PyXBMCGUILock();
int id = g_windowManager.GetActiveWindow();
PyXBMCGUIUnlock();
return Py_BuildValue((char*)"l", id);
}
示例6: XBMCGUI_GetCurrentWindowDialogId
PyObject* XBMCGUI_GetCurrentWindowDialogId(PyObject *self, PyObject *args)
{
PyXBMCGUILock();
int id = g_windowManager.GetTopMostModalDialogID();
PyXBMCGUIUnlock();
return Py_BuildValue((char*)"l", id);
}
示例7: Keyboard_DoModal
PyObject* Keyboard_DoModal(Keyboard *self, PyObject *args)
{
CGUIDialogKeyboard *pKeyboard = ((Keyboard*)self)->dlg;
if(!pKeyboard)
{
PyErr_SetString(PyExc_SystemError, "Unable to load virtual keyboard");
return NULL;
}
int autoClose = 0;
if (!PyArg_ParseTuple(args, (char*)"|i", &autoClose)) return NULL;
PyXBMCGUILock();
pKeyboard->Initialize();
pKeyboard->SetHeading(self->strHeading);
CStdString strDefault(self->strDefault);
pKeyboard->SetText(strDefault);
pKeyboard->SetHiddenInput(self->bHidden);
if (autoClose > 0)
pKeyboard->SetAutoClose(autoClose);
// do modal of dialog
PyXBMCGUIUnlock();
PyXBMCWaitForThreadMessage(TMSG_DIALOG_DOMODAL, WINDOW_DIALOG_KEYBOARD, g_windowManager.GetActiveWindow());
Py_INCREF(Py_None);
return Py_None;
}
示例8: WindowXML_AddItem
PyObject* WindowXML_AddItem(WindowXML *self, PyObject *args)
{
if (!self->pWindow) return NULL;
PyObject *pObject;
int itemPosition = INT_MAX;
if (!PyArg_ParseTuple(args, (char*)"O|i", &pObject, &itemPosition)) return NULL;
string strText;
ListItem* pListItem = NULL;
if (ListItem_CheckExact(pObject))
{
// object is a listitem
pListItem = (ListItem*)pObject;
Py_INCREF(pListItem);
}
else
{
// object is probably a text item
if (!PyXBMCGetUnicodeString(strText, pObject, 1)) return NULL;
// object is a unicode string now, create a new ListItem
pListItem = ListItem_FromString(strText);
}
CGUIPythonWindowXML * pwx = (CGUIPythonWindowXML*)self->pWindow;
// Tells the window to add the item to FileItem vector
PyXBMCGUILock();
pwx->AddItem(pListItem->item, itemPosition);
PyXBMCGUIUnlock();
Py_INCREF(Py_None);
return Py_None;
}
示例9: Control_SetHeight
PyObject* Control_SetHeight(Control* self, PyObject* args)
{
if (!PyArg_ParseTuple(args, (char*)"l", &self->dwHeight)) return NULL;
PyXBMCGUILock();
if (self->pGUIControl) self->pGUIControl->SetHeight((float)self->dwHeight);
PyXBMCGUIUnlock();
Py_INCREF(Py_None);
return Py_None;
}
示例10: Control_SetPosition
PyObject* Control_SetPosition(Control* self, PyObject* args)
{
if (!PyArg_ParseTuple(args, (char*)"ll", &self->dwPosX, &self->dwPosY)) return NULL;
PyXBMCGUILock();
if (self->pGUIControl) self->pGUIControl->SetPosition((float)self->dwPosX, (float)self->dwPosY);
PyXBMCGUIUnlock();
Py_INCREF(Py_None);
return Py_None;
}
示例11: Control_SetEnabled
PyObject* Control_SetEnabled(Control* self, PyObject* args)
{
char enabled;
if (!PyArg_ParseTuple(args, (char*)"b", &enabled)) return NULL;
PyXBMCGUILock();
if (self->pGUIControl) self->pGUIControl->SetEnabled(0 != enabled);
PyXBMCGUIUnlock();
Py_INCREF(Py_None);
return Py_None;
}
示例12: WindowXML_ClearList
PyObject* WindowXML_ClearList(WindowXML *self, PyObject *args)
{
if (!self->pWindow) return NULL;
CGUIPythonWindowXML * pwx = (CGUIPythonWindowXML*)self->pWindow;
PyXBMCGUILock();
pwx->ClearList();
PyXBMCGUIUnlock();
Py_INCREF(Py_None);
return Py_None;
}
示例13: ControlCheckMark_GetSelected
PyObject* ControlCheckMark_GetSelected( ControlCheckMark *self )
{
bool isSelected = 0;
PyXBMCGUILock();
if (self->pGUIControl)
{
isSelected = ((CGUICheckMarkControl*)self->pGUIControl)->GetSelected();
}
PyXBMCGUIUnlock();
return Py_BuildValue((char*)"b", isSelected);
}
示例14: WindowXML_GetListSize
PyObject* WindowXML_GetListSize(WindowXML *self, PyObject *args)
{
if (!self->pWindow) return NULL;
CGUIPythonWindowXML * pwx = (CGUIPythonWindowXML*)self->pWindow;
PyXBMCGUILock();
int listSize = pwx->GetListSize();
PyXBMCGUIUnlock();
Py_INCREF(Py_None);
return Py_BuildValue((char*)"l", listSize);
}
示例15: XBMC_GetCondVisibility
PyObject* XBMC_GetCondVisibility(PyObject *self, PyObject *args)
{
char *cLine = NULL;
if (!PyArg_ParseTuple(args, (char*)"s", &cLine)) return NULL;
PyXBMCGUILock();
int id = g_windowManager.GetTopMostModalDialogID();
if (id == WINDOW_INVALID) id = g_windowManager.GetActiveWindow();
PyXBMCGUIUnlock();
int ret = g_infoManager.TranslateString(cLine);
return Py_BuildValue((char*)"b", g_infoManager.GetBool(ret,id));
}