Ejemplo n.º 1
0
/* PlacePanes --
 *	Places slave panes based on sash positions.
 */
static void PlacePanes(Paned *pw)
{
    int horizontal = pw->paned.orient == TTK_ORIENT_HORIZONTAL;
    int width = Tk_Width(pw->core.tkwin), height = Tk_Height(pw->core.tkwin);
    int sashThickness = pw->paned.sashThickness;
    int pos = 0;
    int index;

    for (index = 0; index < Ttk_NumberSlaves(pw->paned.mgr); ++index) {
        Pane *pane = Ttk_SlaveData(pw->paned.mgr, index);
        int size = pane->sashPos - pos;

        if (size > 0) {
            if (horizontal) {
                Ttk_PlaceSlave(pw->paned.mgr, index, pos, 0, size, height);
            } else {
                Ttk_PlaceSlave(pw->paned.mgr, index, 0, pos, width, size);
            }
        } else {
            Ttk_UnmapSlave(pw->paned.mgr, index);
        }

        pos = pane->sashPos + sashThickness;
    }
}
Ejemplo n.º 2
0
/* LabelframePlaceSlaves --
 * 	Sets the position and size of the labelwidget.
 */
static void LabelframePlaceSlaves(void *recordPtr)
{
    Labelframe *lframe = recordPtr;

    if (Ttk_NumberSlaves(lframe->label.mgr) == 1) {
	Ttk_Box b;
	LabelframeDoLayout(recordPtr);
	b = lframe->label.labelParcel;
	/* ASSERT: slave #0 is lframe->label.labelWidget */
	Ttk_PlaceSlave(lframe->label.mgr, 0, b.x,b.y,b.width,b.height);
    }
}