char *MakePPDBoolList(PPDOptions *ppd_opt, char *item_name) { char *glist = NULL; char curr[256]; int disable; UIItemsList *item; item = FindItemsList(ppd_opt->items_list, item_name); if(item == NULL) return NULL; disable = GetDisable(ppd_opt->items_list, item_name); memset(curr, 0, 256); if(item->current_option && item->current_option->name){ if(strcmp(item->current_option->name, "False") == 0 || strcmp(item->current_option->name, "None") == 0) snprintf(curr, 255, "False:True<%d>,False<0>",disable); else snprintf(curr, 255, "True:True<%d>,False<0>", disable); }else{ if(strcmp(item->opt_lists->name, "False") == 0 || strcmp(item->opt_lists->name, "None") == 0) snprintf(curr, 255, "False:True<%d>,False<0>", disable); else snprintf(curr, 255, "True:True<%d>,False<0>", disable); } return glist = strdup(curr); }
// 设置指定分割窗口的位置 int CDuiLayout::SetSplitPos(int nSplitItem, int nSplitPos) { if(GetDisable()) { return nSplitPos; } if(nSplitItem <= -1 || nSplitItem >= (int)m_vecItemInfo.size()) { return nSplitPos; } LayoutItemInfo* pLayoutInfo1 = GetLayoutItemInfo(nSplitItem); //LayoutItemInfo* pLayoutInfo2 = GetLayoutItemInfo(nSplitItem+1); if(pLayoutInfo1 == NULL) { return nSplitPos; } int nOldSplitPos = GetLayoutPos(pLayoutInfo1); pLayoutInfo1->nPos = nSplitPos; // 设置值超过最大值,自动更改为最大值 if(m_nLayoutType == LAYOUT_TYPE_HORIZONTAL) { if(nSplitPos > m_rc.Height()) { pLayoutInfo1->nPos = m_rc.Height(); } }else if(m_nLayoutType == LAYOUT_TYPE_VERTICAL) { if(nSplitPos > m_rc.Width()) { pLayoutInfo1->nPos = m_rc.Width(); } } if(nSplitPos < 0) { pLayoutInfo1->nPos = 0; } if((pLayoutInfo1->nMinPos != 0) && (nSplitPos < pLayoutInfo1->nMinPos)) { pLayoutInfo1->nPos = pLayoutInfo1->nMinPos; } if((pLayoutInfo1->nMaxPos != 0) && (nSplitPos > pLayoutInfo1->nMaxPos)) { pLayoutInfo1->nPos = pLayoutInfo1->nMaxPos; } // 重新计算分割窗口的位置 SetRect(m_rc); return pLayoutInfo1->nPos; }
// 设置控件的焦点 BOOL CCheckButton::SetControlFocus(BOOL bFocus) { __super::SetControlFocus(bFocus); if(!GetVisible() || GetDisable()) { return FALSE; } m_bIsFocus = bFocus; UpdateControl(true); return TRUE; }
int CDuiSlider::SetProgress(int nProgress) { if(GetDisable()) { return m_nProgress; } if(nProgress > m_nMaxProgress) { // 设置值超过最大值,自动更改为最大值 nProgress = m_nMaxProgress; } if(nProgress >= 0 && nProgress <= m_nMaxProgress && m_nProgress != nProgress) { m_nProgress = nProgress; if(GetVisible()) { UpdateControl(true); } } return m_nProgress; }
BOOL CDuiAnimateImage::SetRun(BOOL bRun, int nIndex/* = -1*/) { if(GetDisable()) { return FALSE; } BOOL bOldRunTime = m_bRunTime; int nOldIndex = m_nIndex; m_bRunTime = bRun; if(nIndex >= 0 && nIndex < m_nMaxIndex) { m_nIndex = nIndex; } if(GetVisible() && ((bOldRunTime != m_bRunTime) || (nOldIndex != m_nIndex))) { UpdateControl(); } return m_bRunTime; }