コード例 #1
0
ファイル: GridCell.cpp プロジェクト: uwitec/01technology
void CGridDefaultCell::SetFont(const LOGFONT* plf)
{
    ASSERT(plf);

    if (!plf) return;

    m_Font.DeleteObject();
    m_Font.CreateFontIndirect(plf);

    CGridCell::SetFont(plf);

    // Get the font size and hence the default cell size
    CDC* pDC = CDC::FromHandle(::GetDC(NULL));
    if (pDC)
    {
        CFont* pOldFont = pDC->SelectObject(&m_Font);

        SetMargin(pDC->GetTextExtent(_T(" "), 1).cx);
        m_Size = pDC->GetTextExtent(_T(" XXXXXXXXXXXX "), 14);
        m_Size.cy = (m_Size.cy * 3) / 2;

        pDC->SelectObject(pOldFont);
        ReleaseDC(NULL, pDC->GetSafeHdc());
    }
    else
    {
        SetMargin(3);
        m_Size = CSize(40,16);
    }
}
コード例 #2
0
ファイル: TestClockDlg.cpp プロジェクト: reveur2016/TestClock
BOOL CTestClockDlg::OnInitDialog()
{
    CDialog::OnInitDialog();

    // 이 대화 상자의 아이콘을 설정합니다. 응용 프로그램의 주 창이 대화 상자가 아닐 경우에는
    //  프레임워크가 이 작업을 자동으로 수행합니다.
    SetIcon(m_hIcon, TRUE);			// 큰 아이콘을 설정합니다.
    SetIcon(m_hIcon, FALSE);		// 작은 아이콘을 설정합니다.

    // TODO: 여기에 추가 초기화 작업을 추가합니다.

    // Get the margin information of the 'OK' and 'Cancel' button.

    CRect rectOrg;
    CRect rectOrgBtnOk;
    CRect rectOrgBtnCancel;

    GetClientRect(rectOrg);

    m_rectOrg = rectOrg;

    ClientToScreen(rectOrg);

    m_btnOk.GetWindowRect(rectOrgBtnOk);
    m_btnCancel.GetWindowRect(rectOrgBtnCancel);

    SetMargin(rectOrgBtnOk, rectOrg, m_marginBtnOk);
    SetMargin(rectOrgBtnCancel, rectOrg, m_marginBtnCancel);

    m_nBtnAreaHeight = m_marginBtnCancel.bottom * 2 + rectOrgBtnCancel.Height(); // Set the height of the button area

    SetRadius(rectOrg.Width(), rectOrg.Height());
    m_nRadiusOrg = m_nRadius;

    SetCenterPoint(rectOrg.Width(), rectOrg.Height());
    SetGradationPoints();

    m_nHourGradSize = DEFAULT_HOUR_GRAD_SIZE;
    m_nMinuteGradSize = DEFAULT_MINUTE_GRAD_SIZE;
    m_nSecondHandSize = DEFAULT_SECOND_HAND_SIZE;
    m_nCenterPointSize = DEFAULT_CENTER_POINT_SIZE;

    m_timeCurrent = CTime::GetCurrentTime();
    SetClockHandPoints();

    m_bInit = TRUE;

    m_nTimerId = SetTimer(TIMER_ID, TIMER_INTERVAL, NULL);

    return TRUE;  // 포커스를 컨트롤에 설정하지 않으면 TRUE를 반환합니다.
}
コード例 #3
0
ファイル: EBox.cpp プロジェクト: CortlandNation9/Gamecodeur
EBox::EBox(float x, float y, float w,float h, float marginL, float marginR, float marginU, float marginD) {
	_nIterIndice = 0;
	_minInnerWidth = 0;
	_minInnerHeight = 0;
	_lpParent = NULL;
	_fMaxBlend = 1;
	_fBlend = 1;
   _x = 0;
   _y = 0;

   _nNumMaximizeChild = 0;

	SetVerticalPolicy(VCENTER);
	SetHorisontalPolicy(HCENTER);
	SetSizePolicy(INHERIT);

	SetCentered(false);

	SetGeometry(x,y,w,h);
	SetMargin(marginL,marginR,marginU,marginD);

	_layoutType = VERTICAL;

	if (bg == NULL)
		bg = KPTK::createKGraphic();
   refCount++;
}
コード例 #4
0
int CToolTipCtrlEx::OnCreate(LPCREATESTRUCT lpCreateStruct) {
    if (CToolTipCtrl::OnCreate(lpCreateStruct) == -1) {
        return -1;
    }

    SetTipBkColor(RGB(0x40, 0x40, 0x40));
    SetTipTextColor(EDIT_TEXT_COLOR);
    SetMargin(CRect(0, 0, 2, 2));
    return 0;
}
コード例 #5
0
int CToolTipCtrlZ::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CToolTipCtrl::OnCreate(lpCreateStruct) == -1)
		return -1;

	// TODO:  在此添加您专用的创建代码
	GetParent()->EnableToolTips();
	Activate(TRUE);
	SetMaxTipWidth(SHRT_MAX);
	SetMargin(CRect(4, 4, 4, 4));


	return 0;
}
コード例 #6
0
ファイル: GridCellBase.cpp プロジェクト: iqk168/3111
void CGridCellBase::operator=(const CGridCellBase& cell)
{
    SetGrid(cell.GetGrid());    // do first in case of dependencies

    SetText(cell.GetText());
    SetImage(cell.GetImage());
    SetData(cell.GetData());
    SetState(cell.GetState());
    SetFormat(cell.GetFormat());
    SetTextClr(cell.GetTextClr());
    SetBackClr(cell.GetBackClr());
    SetFont(cell.IsDefaultFont()? NULL : cell.GetFont());
    SetMargin(cell.GetMargin());
}
コード例 #7
0
ファイル: QTable.cpp プロジェクト: Lavoro922/Erd-Creator
QgraphicsItemTable::QgraphicsItemTable(QTableManager* visualRef,QDTable* table,qreal x, qreal y, qreal width, qreal height,Grabber* grab,QColor back, QColor select)
    :QGraphicsItemResizable(x,y,width, height, back, select)
    {
        VisRef = visualRef;
        TableData = table;
        SetMargin(-10,-10,15,15);
        menu = new QMenu(0);

        grabRefer = grab; // setto il grabber .
        QAction *AddAtr =   menu->addAction("Nuovo attributo");
        QAction *act = menu->addAction("Cancella la tabella ");
        connect(act,SIGNAL(triggered()),this,SLOT(DeleteTable()));
        connect(AddAtr,SIGNAL(triggered()),this,SLOT(NewAttribute()));
    }
コード例 #8
0
ファイル: XDomTable.cpp プロジェクト: hgl888/nashtest
void XDomTable::LayeroutCells(DRAWCONTEXT*pDraw,CELLDATA*pData)
{
	//if(!pData->bReturn)
	//pDraw->PADDING=1;
    //pDraw->SPACING=1;
	LAYEROUTDATA margin; 
	CELLDATA data;
	data.Reset(pData->cur.x,pData->cur.y,XTRUE);

	

	PreLayerout(pDraw,&data,&margin);
	//XU8 bCollapse=pDraw->bCollapse;
	pDraw->bCollapse=FindAttrib(XEAB::BORDER_COLLAPSE,0);
	data.pData=XNULL;

	XU8 bInline=IsFingerInline();
	XRect rt=pDraw->win;
	InitMargin(pDraw,&data,&margin,m_nPosX,m_nPosY,m_nWidth,m_nHeight,XTRUE);
	if(m_nWidth>0&&m_nWidth==pDraw->win.Width()&&m_bFinal)
	{
		//bSet=XTRUE;
		data.max.cx=m_nWidth;
		data.max.cy=m_nHeight;
		data.nMin=m_nMin;
	}
	else
	{
		//m_nWin=pDraw->win.Width();
		
		LayeroutTable(pDraw,data);
		
		m_rows.DataFrom(data.rowws);
		m_nMin=data.nMin;
	}
	XSize size(m_nWidth,m_nHeight);
	SetMargin(&margin,m_nWidth,m_nHeight,size);
	//SetMargin(&margin,m_nWidth,m_nHeight,size);
	pDraw->win=rt;
//	XU8 bInline=IsFingerInline();
	if(!bInline)
		m_bReturn=NewRowIfMust(pDraw,pData,m_nWidth);
	SetRowSize(pDraw,pData,size,data.nMin,XTRUE);
	if(!bInline) 
		NewRow(0,pDraw,pData,pDraw->IND);
	//pDraw->bCollapse=
	EndLayerout(pDraw,pData);
	//pDraw->win=rect;
}
コード例 #9
0
    /// Creates a header row
    SaveFileRow() :
        m_type ( HEADER )
    {
        SetMargin ( ROW_MARGIN );
        CalculateColumnWidths();

        boost::shared_ptr<GG::Font> font = ClientUI::GetFont();
        GG::Clr head_clr = ClientUI::TextColor();

        push_back ( new GG::TextControl ( GG::X0, GG::Y0, UserString ( "SAVE_TIME_TITLE" ),     font, head_clr ) );
        push_back ( new GG::TextControl ( GG::X0, GG::Y0, UserString ( "SAVE_TURN_TITLE" ),     font, head_clr ) );
        push_back ( new GG::TextControl ( GG::X0, GG::Y0, UserString ( "SAVE_PLAYER_TITLE" ),   font, head_clr ) );
        push_back ( new GG::TextControl ( GG::X0, GG::Y0, UserString ( "SAVE_EMPIRE_TITLE" ),   font, head_clr ) );
        push_back ( new GG::TextControl ( GG::X0, GG::Y0, UserString ( "SAVE_FILE_TITLE" ),     font, head_clr ) );
    }
コード例 #10
0
ファイル: EBox.cpp プロジェクト: CortlandNation9/Gamecodeur
EImgExpendableBox::EImgExpendableBox(KGraphic *imgBox,  float wLUCorner, float hLUCorner, float wRDCorner, float hRDCorner, float margin, float x, float y):
	EBox(x,y,imgBox->getWidth(),imgBox->getHeight(),margin,margin,margin,margin) {
		_lpImgBox = imgBox;
		_fImgWidth = _lpImgBox->getWidth();
		_fImgHeight = _lpImgBox->getHeight();

		_wLUCorner = wLUCorner;
		_wRDCorner = wRDCorner;
		_wCenter   = _fImgWidth -(_wLUCorner+_wRDCorner);

		_hLUCorner = hLUCorner;
		_hRDCorner = hRDCorner;
		_hCenter   = _fImgHeight -(_hLUCorner+_hRDCorner);

		SetMargin(_wLUCorner,_wRDCorner,_hLUCorner,_hRDCorner);
}
コード例 #11
0
void CGridCellBase::operator=(  CGridCellBase& cell)
{
	if (this == &cell) return;

    SetGrid(cell.GetGrid());    // do first in case of dependencies

    SetText(cell.GetText());
    SetImage(cell.GetImage());
    SetData(cell.GetData());
    SetState(cell.GetState());
    SetFormat(cell.GetFormat());
    SetTextClr(cell.GetTextClr());
    SetBackClr(cell.GetBackClr());
    SetFont(cell.IsDefaultFont()? NULL : cell.GetFont());
    SetMargin(cell.GetMargin());
//Used for merge cells
//by Huang Wei
	SetMergeCellID(cell.GetMergeCellID());
	SetMergeRange(cell.GetMergeRange());
	Show(cell.IsShow());
}
コード例 #12
0
ファイル: ComboBox.cpp プロジェクト: authenticate/GWEN
GWEN_CONTROL_CONSTRUCTOR(ComboBox, Button)
{
    _menu = new Menu(this);
    _menu->SetHidden(true);
    _menu->SetIconMarginDisabled(true);
    _menu->SetTabable(false);

    ControlsInternal::ComboBoxDownArrow* down_arrow = new ControlsInternal::ComboBoxDownArrow(this);
    down_arrow->SetComboBox(this);

    _button = down_arrow;
    _selected_item = nullptr;

    SetAlignment(Position::LEFT | Position::CENTER_V);
    SetKeyboardInputEnabled(true);
    SetMargin(Margin(3, 0, 0, 0));
    SetSize(100, 20);
    SetTabable(true);
    SetText("");
    SetTextPadding(Padding(4, 0, 0, 0));
}
コード例 #13
0
ファイル: wtlist.cpp プロジェクト: peteratebs/webcwebbrowser
WebListBox::WebListBox ()
{
	miMouseOver = 0;
	miSelected = 0;
	mppOption = WEBC_NULL;
	miNumOptions = 0;
	mpVScroll = WEBC_NULL;
	mpHScroll = WEBC_NULL;
    miSliderWidth = webc_GetDefaultDisplayInt(WEBC_DEFAULT_SLIDER_WIDTH);
	miTextHeight = miTotalTextHeight = miTotalTextWidth = -1;
	miLongestOption = 0;
	mpListener = WEBC_NULL;
	mStyle = 0;


	SetFlag(DISPLAY_FLAG_ACCEPTS_FOCUS);
	SetMargin(LISTBOX_MARGIN);
	SetPadding(LISTBOX_PADDING);
	SetBorder(LISTBOX_BORDER);
	SetSpacing(LISTBOX_SPACING);

}
コード例 #14
0
    /// Creates a row for the given savefile
    SaveFileRow ( const std::string& filename, const SaveGamePreviewData& preview ) :
        m_type ( PREVIEW )
    {
        SetMargin ( ROW_MARGIN );
        this->m_filename = filename;
        CalculateColumnWidths();

        boost::shared_ptr<GG::Font> font = ClientUI::GetFont();
        GG::Clr item_clr = ClientUI::TextColor();

        std::string save_time = split_time ( preview.save_time );


        push_back ( new GG::TextControl ( GG::X0, GG::Y0, m_time_column_width, font->Height(),
                                          save_time, font, item_clr,
                                          GG::FORMAT_LEFT ) );
        push_back ( new GG::TextControl ( GG::X0, GG::Y0, m_turn_column_width, font->Height(),
                                          std::string ( " " ) + boost::lexical_cast<std::string> ( preview.current_turn ), font, item_clr,
                                          GG::FORMAT_LEFT ) );

        push_back ( CreateResizingText(preview.main_player_name, font, item_clr) );
        push_back ( CreateResizingText(preview.main_player_empire_name, font, preview.main_player_empire_colour) );
        push_back ( CreateResizingText(filename, font, item_clr) );
    }
コード例 #15
0
ファイル: XDomTable.cpp プロジェクト: hgl888/nashtest
void XDomTable::LayeroutCell(DRAWCONTEXT*pDraw,CELLDATA*pData)
{

   if(m_nWidth<=0) return;

   int aw=pDraw->ALIGNW;
   pDraw->ALIGNW=XEA::LEFT;
   LAYEROUTDATA margin;
   CELLDATA data;
   data.Reset(pData->cur.x,pData->cur.y,XTRUE);
   PreLayerout(pDraw,&data,&margin);
   data.pData=XNULL;
   pDraw->bCollapse=FindAttrib(XEAB::BORDER_COLLAPSE,0);
   //if(!pData->bReturn)
   //if(m_bReturn)
   XU8 bInline=IsFingerInline();


   //if(pDraw->SETWIDTH==-92)
   //   int a=0;

   if(!bInline)//&&m_bReturn)
   {
	  AlignRow(pDraw,pData);
	  NewRowMust(pDraw,pData,m_bReturn);
   }
   //else 
	  

   m_nPosX=pData->cur.x;//+margin.nMargin[BORDERDATA::LEFT];
   m_nPosY=pData->cur.y;//+margin.nMargin[BORDERDATA::TOP];

   int bd=FindAttrib(XEAB::BORDER,0);
   int cs=pDraw->PADDING;//XMAX(FindAttrib(XEAB::CELLPADDING,1),0);
   int cp=pDraw->SPACING;//XMAX(FindAttrib(XEAB::CELLSPACING,1),0);
   /*int bdx=margin.nMargin[BORDERDATA::LEFT]+
	       margin.nPadding[BORDERDATA::LEFT]+
		   margin.nBorderWidth[BORDERDATA::LEFT];
   int bdy=margin.nMargin[BORDERDATA::RIGHT]+
	       margin.nPadding[BORDERDATA::RIGHT]+
		   margin.nBorderWidth[BORDERDATA::RIGHT];*/
   
   XU8 bCollapse=FindAttrib(XEAB::BORDER_COLLAPSE,0);
   if(bCollapse)
	 bd+=2;
   //XU8 nType=FindAttrib(XEAB::FRAME,XEnumFrame::BOX);
   //if(nType==XEF::VOID_X) bd=0;
   
   //
   XRect rt=pDraw->win;
   //if(bd>0)
   {
	pDraw->win.left=m_nPosX+bd;
	pDraw->win.right=m_nPosX+m_nWidth-(bd+cs);
   }
   //else pDraw->win.right--;

   //if(m_bFinal&&m_nWidth==pDraw->win.Width())
   data.rowws.DataFrom(m_rows);

   data.Reset(pData->cur.x+bd,pData->cur.y+bd,XFALSE);
   //if(margin.nBorderWidth[0]&&m_nPosX==3)
   	 //  int a=0;
   
   InitMargin(pDraw,&data,&margin,m_nPosX,m_nPosY,m_nWidth,m_nHeight,XTRUE);
   m_nPosX-=bd;
   m_nPosY-=bd;

   HandleChild(XDO_LAYEROUT_TAB,(XU32)pDraw,(XU32)&data);
   XSize size(m_nWidth,m_nHeight);
   SetMargin(&margin,m_nWidth,m_nHeight,size);
   m_rows.DataFrom(data.rowws);

  // pDraw->PADDING=nPad;
  // pDraw->SPACING=nSpa;
   pDraw->win=rt; 
  // pData->alignw=aw;
   //data.max.cx-=pData->cur.x;
   //data.max.cy-=pData->cur.y;
   EndLayerout(pDraw,pData);
   pDraw->ALIGNW=aw;
   SetRowSize(pDraw,pData,size,data.nMin,XFALSE);
   NewRow(0,pDraw,pData,pDraw->IND);
   
   //pDraw->win=rect;
}
コード例 #16
0
ファイル: XHTMLBody.cpp プロジェクト: hgl888/nashtest
 XU32 XHTMLBody::Handle(XU32 nOpera, XU32 pData1, XU32 pData2)
 {
	XU32 i;
 	switch(nOpera)
 	{
 	//case XDO_SET_START:
 	//	 return StartEvent((DRAWCONTEXT*)pData1);
	/*case XDO_LAYEROUT_CELLS:
		{
			CELLDATA*p=(CELLDATA*)pData2;
			DRAWCONTEXT*pd=(DRAWCONTEXT*)pData1;
			XU32 ss=PreLayerout(pd,p);
 			XDomCard::Handle(nOpera,pData1,pData2);
 			EndLayerout(pd,p);
		}return 1;*/
 	case XDO_LAYEROUT_CELL:
 		{
			  CELLDATA data;
			  LAYEROUTDATA margin;
			  //data.Reset(pData->cur.x,pData->cur.y,XTRUE);
			  CELLDATA*pData=&data;//(CELLDATA*)pData2;
			  DRAWCONTEXT*pDraw=(DRAWCONTEXT*)pData1;
			  pDraw->Init();
			  pData->Reset(pDraw->win.left,pDraw->win.top,XTRUE);

			  PreLayerout(pDraw,pData,&margin);
			  if(m_nWidth>0) 
			  {
				  if(margin.nMargin[BORDERDATA::LEFT]>0&&
					 margin.nMargin[BORDERDATA::LEFT]+m_nWidth>pDraw->view.Width())
				  {
					  margin.nMargin[BORDERDATA::LEFT]=XMAX(
						  (pDraw->view.Width()-m_nWidth)>>1,0);
				  }
				  if(m_nWidth>pDraw->win.Width())
					pDraw->win.right=pDraw->win.left+m_nWidth;
			  }
			  
			  
			  //pData->Init();
			  InitMargin(pDraw,pData,&margin,m_nPosX,m_nPosY,m_nWidth,m_nHeight);
			  XPoint pt=pData->cur;
			  for(i=0;i<m_childs.GetSize();i++)
				m_childs[i]->LayeroutItem(pDraw,pData,XTRUE);//Handle(XDO_LAYEROUT_CELLS,(XU32)pDraw,(XU32)&data);
			  pData->Reset(pt.x,pt.y,XFALSE);
			  NewRow(0,pDraw,pData,pDraw->IND);
			  pData->bEmpty=XTRUE;
			  for(i=0;i<m_childs.GetSize();i++)
				m_childs[i]->LayeroutItem(pDraw,pData,XFALSE);//Handle(XDO_LAYEROUT_CELL,(XU32)pDraw,(XU32)&data);
			  //data.max.cx-=pData->cur.x;
			  //data.max.cy-=pData->cur.y;
			  m_nWidth=pData->max.cx-pt.x;
			  m_nHeight=pData->max.cy-pt.y;
			  if(m_nWidth<pDraw->view.Width())
				  m_nWidth=pDraw->view.Width();
			  if(m_nHeight<pDraw->view.Height())
				  m_nHeight=pDraw->view.Height();
			  XSize size(m_nWidth,m_nHeight);
			  SetMargin(&margin,m_nWidth,m_nHeight,size);
			  //m_nWidth=data.max.cx-pData->cur.x;
	          pData=(CELLDATA*)pData2;
			  SetRowSize(pDraw,pData,size,m_nWidth,XFALSE);
			  NewRow(0,pDraw,pData,pDraw->IND);

			/*CELLDATA*p=(CELLDATA*)pData2;
			DRAWCONTEXT*pd=(DRAWCONTEXT*)pData1;
			LAYEROUTDATA margin;
			XU32 ss=PreLayerout(pd,p,margin);
//			StartMargin(pd,p,XTRUE);
			//BeginMargin(pd,p);
			m_nPosX=p->cur.x;
			m_nPosY=p->cur.y;
 			XDomCard::Handle(nOpera,pData1,pData2);
 			EndLayerout(pd,p);
 			m_nWidth=XMAX(p->max.cx-m_nPosX,pd->view.Width()-(m_nPosX<<1)-1);
 			m_nHeight=XMAX(p->max.cy-m_nPosY,pd->view.Height()-(m_nPosY<<1)-1);*/
 		}return 1;
 	case XDO_PAINT:
 		{
 			XRect rect(m_nPosX,m_nPosY,m_nPosX+m_nWidth,m_nPosY+m_nHeight);
 			PaintBack((DRAWCONTEXT*)pData1,rect);
			XU32 s=XDomCard::Handle(nOpera,pData1,pData2);
			PaintBorder((DRAWCONTEXT*)pData1,rect);
			return s;
 		};
	case XDO_EVENT_ONTIMER:
		{
			XRect rect(0,0,m_nWidth,m_nHeight);
			return OnTimer((XEVENTDATA*)pData1,rect)|
				   XDomCard::Handle(nOpera,pData1,pData2);
		}break;
 /*	case XDO_SET_ATTR:
 	case XDO_ADD_ATTR:
 		 SetBodyAttrib((XVar*)pData1);
 		 break;	*/
 		 //return XTRUE;
 	}
コード例 #17
0
ファイル: team_box.cpp プロジェクト: Arnaud474/Warmux
TeamBox::TeamBox(const std::string& _player_name, const Point2i& _size) :
  HBox(_size.y, false, false, false),
  ai_name(NO_AI_NAME)
{
  associated_team = NULL;

  SetMargin(2);
  SetNoBorder();
  Widget::SetBackgroundColor(transparent_color);

  Profile *res = GetResourceManager().LoadXMLProfile("graphism.xml", false);

  /********        Logos: team mascott, player type icon      ********/
  Box * tmp_logo_box = new VBox(W_UNDEF, false, false, false);
  tmp_logo_box->SetMargin(1);
  tmp_logo_box->SetNoBorder();

  team_logo = new PictureWidget(Point2i(38, 38));
  tmp_logo_box->AddWidget(team_logo);

  player_local_ai_surf = GetResourceManager().LoadImage(res, "menu/player_local_ai");
  player_local_human_surf = GetResourceManager().LoadImage(res, "menu/player_local_human");
  player_remote_ai_surf = GetResourceManager().LoadImage(res, "menu/player_remote_ai");
  player_remote_human_surf = GetResourceManager().LoadImage(res, "menu/player_remote_human");

  player_type =  new PictureWidget(Point2i(38, 30));
  player_type->SetSurface(player_local_ai_surf);
  tmp_logo_box->AddWidget(player_type);

  AddWidget(tmp_logo_box);

  /********    Center box: team name, commander   *********/
  int width = _size.x - (2*2+(38+2*2)+(110+2*2));
  Box * tmp_player_box = new VBox(_size.y, false, false, false);
  tmp_player_box->SetMargin(0);
  tmp_player_box->SetNoBorder();

  previous_player_name = "team";
  team_name = new Label(previous_player_name, width,
                        Font::FONT_MEDIUM, Font::FONT_BOLD);
  tmp_player_box->AddWidget(team_name);

  /********    Names: "Head commander" + text/custom team    *******/
  tmp_player_box->AddWidget(new Label(_("Head commander"), width,
                                      Font::FONT_SMALL, Font::FONT_BOLD));

  custom_team_list = GetCustomTeamsList().GetList();
  custom_team_current_id = 0;

  if (custom_team_list.empty()) {
    player_name = new TextBox(_player_name, width,
                              Font::FONT_SMALL, Font::FONT_BOLD);
    tmp_player_box->AddWidget(player_name);

    next_custom_team = NULL;
    previous_custom_team = NULL;

  } else {
    next_custom_team = new Button(res, "menu/plus");
    previous_custom_team = new Button(res, "menu/minus");

    player_name = new TextBox(_player_name, width - 2 * (next_custom_team->GetSizeY() + 2),
                              Font::FONT_SMALL, Font::FONT_BOLD);

    Box * tmp_name_box = new HBox(player_name->GetSizeY(), false, false, false);
    tmp_name_box->SetNoBorder();
    tmp_name_box->SetMargin(2);

    tmp_name_box->AddWidget(previous_custom_team);
    tmp_name_box->AddWidget(player_name);
    tmp_name_box->AddWidget(next_custom_team);
    tmp_player_box->AddWidget(tmp_name_box);
  }
  AddWidget(tmp_player_box);


  /**********     Number of characters        **********/
  nb_characters = new SpinButtonWithPicture(_("Number of characters"), "menu/ico_play",
                                            Point2i(110, 120), 6, 1, 1, 10);
  AddWidget(nb_characters);
}
コード例 #18
0
ファイル: team_box.cpp プロジェクト: fluxer/warmux
TeamBox::TeamBox(const std::string& _player_name, const Point2i& _size, uint g)
  : HBox(_size.y, false, false, false)
  , ai_level(0)
  , group(g)
{
  associated_team = NULL;

  SetMargin(2);
  SetBorder(transparent_color, 4);
  Widget::SetBackgroundColor(transparent_color);

  Profile *res = GetResourceManager().LoadXMLProfile("graphism.xml", false);

  player_local[0] = LOAD_RES_IMAGE("menu/player_local_human");
  player_local[1] = LOAD_RES_IMAGE("menu/player_local_ai");
  player_local[2] = LOAD_RES_IMAGE("menu/player_local_ai_dumb");
  player_local[3] = LOAD_RES_IMAGE("menu/player_local_ai_strong");

  player_remote[0] = LOAD_RES_IMAGE("menu/player_remote_human");
  player_remote[1] = LOAD_RES_IMAGE("menu/player_remote_ai");
  player_remote[2] = LOAD_RES_IMAGE("menu/player_remote_ai_dumb");
  player_remote[3] = LOAD_RES_IMAGE("menu/player_remote_ai_strong");

  int width = _size.x - (CHAR_COUNT_WIDGET_SIZE+2*margin+2*border_size);
  Box * tmp_player_box = new VBox(_size.y-2*border_size, false, false, false);
  tmp_player_box->SetMargin(4);
  tmp_player_box->SetNoBorder();
  AddWidget(tmp_player_box);

  tmp_player_box->AddWidget(new NullWidget(Point2i(width, 20)));

  /********   Box for team logo, commander, custom team, ai & group  *******/
  HBox *hbox = new HBox(W_UNDEF, false, false, false);
  hbox->SetMargin(0);
  hbox->SetNoBorder();
  tmp_player_box->AddWidget(hbox);

  /****    AI    ****/
  player_type =  new PictureWidget(Point2i(40, 40));
  player_type->SetSurface(player_local[ai_level]);
  hbox->AddWidget(player_type);

  /****    Team Logo    ****/
  team_logo = new PictureWidget(Point2i(40, 40));
  hbox->AddWidget(team_logo);

  /****     Team name/commander    ****/
  VBox *vbox = new VBox(W_UNDEF, false, false, false);
  vbox->SetMargin(0);
  vbox->SetNoBorder();
  hbox->AddWidget(vbox);

  previous_player_name = "team";
  team_name = new Label(previous_player_name, width - (40*2 + 60),
                        Font::FONT_MEDIUM, Font::FONT_BOLD);
  vbox->AddWidget(team_name);

  /****    Names: "Head commander" + text/custom team    ****/
  vbox->AddWidget(new Label(_("Head commander"), width - (40*2 + 60),
                            Font::FONT_SMALL, Font::FONT_BOLD));

  /****  Group selection box ****/
  nullw = new NullWidget(Point2i(60, 40));
  nullw->SetBackgroundColor(TeamGroup::Colors[g]);
  hbox->AddWidget(nullw);

  custom_team_list = GetCustomTeamsList().GetList();
  custom_team_current_id = 0;

  if (custom_team_list.empty()) {
    player_name = new TextBox(_player_name, width,
                              Font::FONT_SMALL, Font::FONT_BOLD);
    tmp_player_box->AddWidget(player_name);

    next_custom_team = NULL;
    previous_custom_team = NULL;

  } else {
    next_custom_team = new Button(res, "menu/big_plus");
    previous_custom_team = new Button(res, "menu/big_minus");

    player_name = new TextBox(_player_name, width - 2 * (next_custom_team->GetSizeX() + 2),
                              Font::FONT_SMALL, Font::FONT_BOLD);

    Box * tmp_name_box = new HBox(player_name->GetSizeY(), false, false, false);
    tmp_name_box->SetNoBorder();
    tmp_name_box->SetMargin(2);

    tmp_name_box->AddWidget(previous_custom_team);
    tmp_name_box->AddWidget(player_name);
    tmp_name_box->AddWidget(next_custom_team);
    tmp_player_box->AddWidget(tmp_name_box);
  }

  /**********     Number of characters        **********/
  nb_characters = new SpinButtonWithPicture(_("Number of characters"), "menu/ico_play",
                                            Point2i(CHAR_COUNT_WIDGET_SIZE, 110), 6, 1, 1, 10);
  AddWidget(nb_characters);
  Pack();
}
コード例 #19
0
ファイル: XDomTable.cpp プロジェクト: hgl888/nashtest
void XDomTD::LayeroutCells(DRAWCONTEXT*pDraw,CELLDATA*pData,int span)
{
   CELLDATA data;  
   LAYEROUTDATA margin;
   SpanCol(pData); 
   data.Reset(pData->cur.x,pData->cur.y,XTRUE);
   PreLayerout(pDraw,&data,&margin);
   data.pData=XNULL;
   int cspan=//pDraw->DCOLSPAN;//
	        //span==0?XMAX(FindAttrib(XEAB::COLSPAN,1),1):span;
			span==0?pDraw->DCOLSPAN:span;
   int rspan=pDraw->DROWSPAN;//
             //XMAX(FindAttrib(XEAB::ROWSPAN,1),1);
	//for debug 
   
   XRect rw=pDraw->win;
   
   

  // if(pDraw->SETWIDTH==663)
//	   int a=0;

   XSize sz;
   if(pData->bFinal)
   {
	   
	   int w=pData->fixCols[pData->nCol];
	   for(int i=1;i<cspan;i++)
	   {
		   if(pData->nCol+i>=(int)pData->fixCols.GetSize()) break;
		   w+=pData->fixCols[pData->nCol+i];
	   }
	   InitMargin(pDraw,&data,&margin,m_nPosX,m_nPosY,w,m_nHeight);
	   XPoint pt=data.cur;
	   if(InitSize(pDraw,&data,w,XFALSE))
	   	 m_nFixHeight=data.max.cy-pt.y;
	   //XSize sz;
	   sz=XSize(m_nWidth,m_nHeight);
	   SetMargin(&margin,m_nWidth,m_nHeight,sz);
	   SaveData(&data);
	   //pDraw->win=rt;
	   //m_nFixHeight=m_nHeight;
   }
   else
   {
	   //data.Reset(pData->cur.x,pData->cur.y,XTRUE);
	   
	   int w=0;
	   //if(pData->nCol+cspan<(XINT)pData->setCols.GetSize())
		{
			//w=pData->setCols[pData->nCol];
			for(int i=0;i<cspan;i++)
			{
				if(pData->nCol+i>=(int)pData->setCols.GetSize()) break;
				w+=pData->setCols[pData->nCol+i];
			}
			//int w1=0;
			/*for(int i=0;i<cspan;i++)
			{
				if(pData->nCol+i>=(int)pData->cols[i]
			}*/
		}

	   InitMargin(pDraw,&data,&margin,m_nPosX,m_nPosY,w,m_nHeight);
	   XPoint pt=data.cur;

	   XU8 bFix=InitFixed(pDraw,&data,w);

	   sz=XSize(m_nWidth,m_nHeight);
	   SetMargin(&margin,m_nWidth,m_nHeight,sz);
	   //pDraw->win=rt;
	   //m_nHeight=XMAX(m_nHeight,pDraw->SETHEIGHT);//m_nHeight;//XMAX(m_nHeight,pDraw->SPACE);
	   //w=m_nWidth;
	   if(bFix)
	   {
		    m_nFixWidth=m_nWidth;
			m_nFixHeight=data.max.cy-pt.y;
	   }
	   if(span==0)
	   {
		   int nMin=m_nMin;
		   //if(bFix) m_nFixWidth=data.max.cx-
		   w=m_nFixWidth;
		   for(int i=0;i<cspan;i++)
		   {
			   XU16 id=pData->nCol+i;
			   
			   if(id>=pData->cols.GetSize())
			   {
				   pData->tabs.Add(bFix==1);
				   pData->cols.Add(nMin/(cspan-i));
				   pData->fixCols.Add(w/(cspan-i));
				   nMin-=nMin/(cspan-i);
				   w-=w/(cspan-i);
				   //break;
			   }
			   else if(i+1<cspan)
			   {
				   pData->tabs[id]|=bFix;
				   nMin=XMAX(nMin-pData->cols[id],0);
				   w=XMAX(w-pData->fixCols[id],0);
			   }
			   else
			   {
				   pData->tabs[id]|=bFix;
				   if(pData->cols[id]<nMin)
			   		   pData->cols[id]=nMin;
				   if(pData->fixCols[id]<w)
			   		   pData->fixCols[id]=w;
			   }
		   }
	   }
   }
   //m_rows.DataFrom(data.rowws);
   //m_cols.DataFrom(data.fixCols);
   //XSize size(m_nWidth,m_nHeight);	
   //SetMargin(&margin,m_nWidth,m_nHeight,size);
   /*	XString8 str=FindAttrib(XEAB::ID,"");
	if(str=="999")
		int a=0;*/
   if(pDraw->bCollapse)
   {
	   //m_nWidth-=2;
	   //m_nHeight-=2;
	   //sz.cx-=2;
	   sz.cy-=2;
   } //*///*/

   if(rspan<=1)
		SetTabRow(pDraw,pData,sz.cx,sz.cy);//m_nWidth,m_nHeight);//XSize(m_nWidth,m_nHeight),m_nMin,XTRUE);
   else
   {
	   	SetTabRow(pDraw,pData,sz.cx,pDraw->SPACE);//XSize(m_nWidth,pDraw->nRowSpace),m_nMin,XTRUE);
		pData->spans.Add(rspan);
		pData->spans.Add(pData->nCol);
		pData->spans.Add(m_nWidth);
		pData->spans.Add(m_nFixHeight);
		pData->spans.Add(cspan);
   }
   pDraw->win=rw;
   
   pData->nCol+=cspan;
   EndLayerout(pDraw,&data);
}
コード例 #20
0
ファイル: XDomTable.cpp プロジェクト: hgl888/nashtest
void XDomTD::LayeroutCell(DRAWCONTEXT*pDraw,CELLDATA*pData,int span)
{		
 

   SpanCol(pData);
   //if(pDraw->win.Width()<6) return;
   if(pData->nRow>=(XINT)pData->rowws.GetSize()) return;
   XU8 ah=pDraw->ALIGNH;
   pDraw->ALIGNH=XEA::MIDDLE;
   LAYEROUTDATA margin;	
   CELLDATA data;
   data.Reset(pData->cur.x,pData->cur.y,XTRUE);
   PreLayerout(pDraw,&data,&margin);
   data.pData=XNULL;
   XRect rect=pDraw->win;
   
   m_nPosX=pData->cur.x;
   m_nPosY=pData->cur.y;


 //  if(pDraw->SETHEIGHT==180)
//	   int a=0;
   int rspan=pDraw->DROWSPAN;//XMAX(FindAttrib(XEAB::ROWSPAN,1),1);
   int cspan=span==0?pDraw->DCOLSPAN:span;//XMAX(FindAttrib(XEAB::COLSPAN,1),1):span;
   int h=pData->rowws[pData->nRow];

   for(int i=1;i<rspan;i++)
   {
	   if(pData->nRow+i>=(int)pData->rowws.GetSize()) break;
	   h+=pData->rowws[pData->nRow+i];
   }
   if(h>m_nHeight) m_nHeight=h;
   InitMargin(pDraw,&data,&margin,m_nPosX,m_nPosY,m_nWidth,m_nHeight,XFALSE);
   //if(pDraw->bCollapse)
   //{data.cur.y+=2;m_nPosY+=2;}

   switch(pDraw->ALIGNH)
   {
	 case XEA::MIDDLE:data.cur.y+=(m_nHeight-m_nFixHeight)>>1;break;
	 case XEA::BOTTOM:data.cur.y+=(m_nHeight-m_nFixHeight);break;
   }
  
   //data.cur.y=AlignCol(pDraw,pData,m_nFixHeight+(pDraw->PADDING<<1),pDraw->ALIGNH,m_nHeight)+
   //		  pDraw->SPACING;//pDraw->nRowSpace;
   //int px=data.cur.x;//+dd;//pDraw->nColSpace;
   //data.cur.x=px;
   //data.cur.y=py;

   //data.bReturn=XTRUE;
   
   //InitMargin(pDraw,
   InitSize(pDraw,&data,m_nWidth,XTRUE);
	//   XDomNode::Handle(XDO_LAYEROUT_CELLS,(XU32)pDraw,(XU32)&data);
   
   //
//   data.Reset(px,py,data.alignw,data.alignh,data.nowrap);
//   data.bReturn=XTRUE;
 //  AlignRow(pDraw,&data);
   NewRow(0,pDraw,&data,0);
   data.bEmpty=XTRUE;
   if(pDraw->bCollapse)
   {
	   data.cur.y+=2;
	   data.cur.x+=2;
	   //m_nWidth+=2;
	   //m_nHeight+=2;
   }
   HandleChild(XDO_LAYEROUT_CELL,(XU32)pDraw,(XU32)&data);
   XSize size(m_nWidth,m_nHeight);
   SetMargin(&margin,m_nWidth,m_nHeight,size);
   /*if(pData->bCollapse)
   {
	   m_nWidth+=2;
	   m_nHeight+=2;
   }*/
   pDraw->win=rect;
   
   SaveData(&data);

   EndLayerout(pDraw,&data);
   pDraw->ALIGNH=ah;
   //int rspan=FindAttrib(XEAB::ROWSPAN,1);
   if(rspan<=1)
		SetTabRow(pDraw,pData,size.cx,size.cy);//m_nWidth,m_nHeight);//XSize(m_nWidth,m_nHeight),m_nMin,XFALSE);
   //else
   else //if(rspan>1)
   {
	   	SetTabRow(pDraw,pData,size.cx,pDraw->SPACE);//XSize(m_nWidth,pDraw->nRowSpace),m_nMin,XFALSE);
		pData->spans.Add(rspan);
		pData->spans.Add(pData->nCol);
		pData->spans.Add(m_nWidth);
		pData->spans.Add(m_nFixHeight);
		pData->spans.Add(cspan);
   }

   //SetRow(pDraw,pData,XSize(m_nWidth,m_nHeight),data.nMin,XFALSE,XFALSE);
   //pData->cur.x+=m_nWidth;////pData->fixCols[pData->nCol];
   pData->nCol+=cspan;//=cspan;
   
   //if(pData->max.cx<m_nPosX+m_nWidth)
	//   pData->max.cx=m_nPosX+m_nWidth;
   //if(pData->max.cy<m_nPosY+m_nHeight)
	//   pData->max.cy=m_nPosY+m_nHeight;
}
コード例 #21
0
ファイル: KUIInterfaceElement.cpp プロジェクト: cllpyl/KeshUI
void UKUIInterfaceElement::SetMarginStruct( const FVector4& v4Margin )
{
	SetMargin( v4Margin.X, v4Margin.Y, v4Margin.Z, v4Margin.W );
}
コード例 #22
0
TeamsSelectionBox::TeamsSelectionBox(const Point2i &_size, bool network, bool w_border) :
  HBox(_size.y, w_border, false)
{
  if (!w_border)
    SetNoBorder();
  SetMargin(0);

  // How many teams ?
  VBox *tmp = new VBox(120, false, false, true);
  if (network) {
    local_teams_nb =
      new SpinButtonWithPicture(_("Local teams:"), "menu/team_number",
                                Point2i(100, 130), 0, 1, 0, MAX_NB_TEAMS);
  } else {
    local_teams_nb =
      new SpinButtonWithPicture(_("Number of teams:"), "menu/team_number",
                                Point2i(100, 130), 2, 1, 2, MAX_NB_TEAMS);
  }
  tmp->AddWidget(local_teams_nb);
  //tmp->AddWidget(new NullWidget(Point2i(120, 120)));
  AddWidget(tmp);

  uint box_w = _size.x - local_teams_nb->GetSizeX() - 10;
  Point2i grid_size = Point2i(box_w, _size.y);
  Point2i grid_dim = grid_size / Point2i(300 + 10, 130 + 10);
  Point2i box_size;
  bool use_list;
  if (grid_dim.x*grid_dim.y < (int)MAX_NB_TEAMS) {
    use_list = true;
    box_size.SetValues(box_w - 40, 120);
  } else {
    use_list = false;
    box_size.SetValues((grid_size / grid_dim) - 10);
  }

  for (uint i=0; i < MAX_NB_TEAMS; i++) {
    std::string player_name = _("Player") ;
    char num_player[4];
    sprintf(num_player, " %d", i+1);
    player_name += num_player;
    teams_selections.push_back(new TeamBox(player_name, box_size));
  }

  // If the intended gridbox would be too big for the intended size,
  // instead create a listbox
  if (use_list) {
    // Warning: this box takes the ownership of the widgets in teams_selections:
    // while any other Box will delete the ones it contains, TeamScrollBox
    // doesn't really contain them as widgets. They therefore aren't released
    // through this mechanism, but with a manual one. This manual mechanism
    // requires we have a *real* copy of the vector for when it is destroyed.
    list_box = new TeamScrollBox(teams_selections, Point2i(box_w-20, _size.y-10));
    list_box->SetNbTeams(0);

    AddWidget(list_box);
  } else {
    list_box = NULL;
    Box * teams_grid_box = new GridBox(grid_dim.y, grid_dim.x, 10, false);
    teams_grid_box->SetNoBorder();

    for (uint i=0; i<MAX_NB_TEAMS; i++)
      teams_grid_box->AddWidget(teams_selections[i]);

    AddWidget(teams_grid_box);
  }

  // Load Teams' list
  GetTeamsList().full_list.sort(compareTeams);
}