## Tcl9.0.3/Tk9.0.3 Documentation > Tk C API > ttk_Geometry

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

  NAME
    Ttk_MakeBox, Ttk_PadBox, Ttk_ExpandBox, Ttk_PackBox, Ttk_StickBox, Ttk_PlaceBox, Ttk_BoxContains, Ttk_MakePadding, Ttk_UniformPadding, Ttk_AddPadding, Ttk_RelievePadding, Ttk_GetPaddingFromObj, Ttk_GetBorderFromObj, Ttk_GetStickyFromObj — Tk の幾何学的な便益 Tk themed geometry utilities
  SYNOPSIS
    #include <tkTheme.h>
    Ttk_Box
    Ttk_MakeBox(int x, int y, int width, int height);
    Ttk_Box
    Ttk_PadBox(Ttk_Box parcel, Ttk_Padding padding);
    Ttk_Box
    Ttk_ExpandBox(Ttk_Box parcel, Ttk_Padding padding);
    Ttk_Box
    Ttk_PackBox(Ttk_Box *cavity, int width, int height, Ttk_Side side);
    Ttk_Box
    Ttk_StickBox(Ttk_Box parcel, int width, int height, unsigned sticky);
    Ttk_Box
    Ttk_PlaceBox(Ttk_Box *cavity, int width, int height, Ttk_Side side, unsigned sticky);
    Ttk_Box
    Ttk_AnchorBox(Ttk_Box parcel, int width, int height, Tk_Anchor anchor);
    Ttk_Padding
    Ttk_MakePadding(short left, short top, short right, short bottom);
    Ttk_Padding
    Ttk_UniformPadding(short border);
    Ttk_Padding
    Ttk_AddPadding(Ttk_Padding padding1, Ttk_Padding padding2;
    Ttk_Padding
    Ttk_RelievePadding(Ttk_Padding padding, int relief);
    int
    Ttk_BoxContains(Ttk_Box box, int x, int y);
    int
    Ttk_GetPaddingFromObj(Tcl_Interp *interp, Tk_Window tkwin, Tcl_Obj *objPtr, Ttk_Padding *padding_rtn);
    int
    Ttk_GetBorderFromObj(Tcl_Interp *interp, Tcl_Obj *objPtr, Ttk_Padding *padding_rtn);
    int
    Ttk_GetStickyFromObj(Tcl_Interp *interp, Tcl_Obj *objPtr, int *sticky_rtn);
  引数 ARGUMENTS
    Tk_Anchor anchor (in)
    Ttk_Box * cavity (入出力in/out)
    short border (入力in)
    short bottom (入力in)
    Ttk_Box box (入力in)
    Ttk_Box * box_rtn (出力out)
    int height (in)
    Tcl_Interp * interp (入力in)
    int left (入力in)
    Tcl_Obj * objPtr (入力in)
    Ttk_Padding padding (in)
    Ttk_Padding * padding_rtn (出力out)
    Ttk_Box parcel (入力in)
    int relief (入力in)
    short right (入力in)
    Ttk_Side side (入力in)
    unsigned sticky (入力in)
    Tk_Window tkwin (入力in)
    short top (入力in)
    int width (入力in)
    int x (入力in)
    int y (入力in)
  BOXES
  詰物 PADDDING
  変換担当譜 CONVERSION ROUTINES
  SEE ALSO
  KEYWORDS

### NAME

Ttk_MakeBox, Ttk_PadBox, Ttk_ExpandBox, Ttk_PackBox, Ttk_StickBox, Ttk_PlaceBox, Ttk_BoxContains, Ttk_MakePadding, Ttk_UniformPadding, Ttk_AddPadding, Ttk_RelievePadding, Ttk_GetPaddingFromObj, Ttk_GetBorderFromObj, Ttk_GetStickyFromObj — Tk の幾何学的な便益 Tk themed geometry utilities

### SYNOPSIS

#include <tkTheme.h>
Ttk_Box
Ttk_MakeBox(int x, int y, int width, int height);
Ttk_Box
Ttk_PadBox(Ttk_Box parcel, Ttk_Padding padding);
Ttk_Box
Ttk_ExpandBox(Ttk_Box parcel, Ttk_Padding padding);
Ttk_Box
Ttk_PackBox(Ttk_Box *cavity, int width, int height, Ttk_Side side);
Ttk_Box
Ttk_StickBox(Ttk_Box parcel, int width, int height, unsigned sticky);
Ttk_Box
Ttk_PlaceBox(Ttk_Box *cavity, int width, int height, Ttk_Side side, unsigned sticky);
Ttk_Box
Ttk_AnchorBox(Ttk_Box parcel, int width, int height, Tk_Anchor anchor);
Ttk_Padding
Ttk_MakePadding(short left, short top, short right, short bottom);
Ttk_Padding
Ttk_UniformPadding(short border);
Ttk_Padding
Ttk_AddPadding(Ttk_Padding padding1, Ttk_Padding padding2;
Ttk_Padding
Ttk_RelievePadding(Ttk_Padding padding, int relief);
int
Ttk_BoxContains(Ttk_Box box, int x, int y);
int
Ttk_GetPaddingFromObj(Tcl_Interp *interp, Tk_Window tkwin, Tcl_Obj *objPtr, Ttk_Padding *padding_rtn);
int
Ttk_GetBorderFromObj(Tcl_Interp *interp, Tcl_Obj *objPtr, Ttk_Padding *padding_rtn);
int
Ttk_GetStickyFromObj(Tcl_Interp *interp, Tcl_Obj *objPtr, int *sticky_rtn);

### 引数 ARGUMENTS

Tk_Anchor anchor (in)
  TK_ANCHOR_NやTK_ANCHOR_NE等の象徴的定数の一つ｡ Tk_GetAnchorFromObj(3) を参照されたい｡　 One of the symbolic constants TK_ANCHOR_N, TK_ANCHOR_NE, etc. See Tk_GetAnchorFromObj(3).

Ttk_Box * cavity (入出力in/out)
  区画領域が割当てられる矩形領域｡ A rectangular region from which a parcel is allocated.

short border (入力in)
  領域の両方に均等に追加される余分の(画素単位の)詰物｡ Extra padding (in pixels) to add uniformly to each side of a region.

short bottom (入力in)
  領域の底に追加される余分の(画素単位の)詰物｡ Extra padding (in pixels) to add to the bottom of a region.

Ttk_Box box (入力in)
  矩形領域の指定｡ Specifies a rectangular region.

Ttk_Box * box_rtn (出力out)
  矩形領域｡ A rectangular region.

int height (in)
  領域の画素単位の高さ｡ The height in pixels of a region.

Tcl_Interp * interp (入力in)
  不都合伝言文の保存に使われる｡ Used to store error messages.

int left (入力in)
  領域の左側に追加される(画素単位の)余分の詰物｡ Extra padding (in pixels) to add to the left side of a region.

Tcl_Obj * objPtr (入力in)
  番号化の値又はビットの櫛に変換される象徴的名前を含む文字列の値｡内部応答は値に対応する即値に修正しうる｡ String value contains a symbolic name to be converted to an enumerated value or bitmask. Internal rep may be be modified to cache corresponding value.

Ttk_Padding padding (in)
  領域の内側に追加される余分の詰物｡ Extra padding to add on the inside of a region.

Ttk_Padding * padding_rtn (出力out)
  領域の中に存在する詰め物｡ Padding present in the inside of a region.

Ttk_Box parcel (入力in)
  空洞から割付けられる矩形領域｡ A rectangular region, allocated from a cavity.

int relief (入力in)
  標準の Tk の立体感指示項目の内の一つ(TK_RELIEF_RAISED, One of the standard Tk relief options (TK_RELIEF_RAISED, TK_RELIEF_SUNKEN, etc.). See Tk_GetReliefFromObj.

short right (入力in)
  領域の右側に追加される(画素単位の)余分の詰物｡ Extra padding (in pixels) to add to the right side of a region.

Ttk_Side side (入力in)
  One of TTK_SIDE_LEFT, TTK_SIDE_TOP, TTK_SIDE_RIGHT, or TTK_SIDE_BOTTOM.

unsigned sticky (入力in)
  TTK_STICK_W (西又は左) と TTK_STICK_E (東又は右) と TTK_STICK_N (北又は上) と TTK_STICK_S (南又は下)の一つ或いはそれ以上のビットを含むビット櫛｡TTK_FILL_X は(TTK_STICK_W|TTK_STICK_E)の同義語として定義され､TTK_FILL_Y は(TTK_STICK_N|TTK_STICK_S)の同義語､TTK_FILL_BOTH は (TTK_FILL_X|TTK_FILL_Y)の同義語である｡grid(n)を参照されたい｡　　 A bitmask containing one or more of the bits TTK_STICK_W (west, or left), TTK_STICK_E (east, or right), TTK_STICK_N (north, or top), and TTK_STICK_S (south, or bottom). TTK_FILL_X is defined as a synonym for (TTK_STICK_W|TTK_STICK_E), TTK_FILL_Y is a synonym for (TTK_STICK_N|TTK_STICK_S), and TTK_FILL_BOTH is a synonym for (TTK_FILL_X|TTK_FILL_Y). See also: grid(n).

Tk_Window tkwin (入力in)
  絶対単位と画素間の変換を定める画面幾何を有する窓｡ Window whose screen geometry determines the conversion between absolute units and pixels.

short top (入力in)
  領域頂の追加詰物 Extra padding at the top of a region.

int width (入力in)
  領域の画素単位の幅 The width in pixels of a region.

int x (入力in)
  領域の上左隅のX 座標｡ X coordinate of upper-left corner of region.

int y (入力in)
  領域の上左隅のY 座標｡ Y coordinate of upper-left corner of region.

### BOXES

Ttk_Box 構造は窓の矩形領域を表現する: The Ttk_Box structure represents a rectangular region of a window:

    typedef struct {
        int x;
        int y;
        int width;
        int height;
    } Ttk_Box;

全ての座標は窓に対して相対的である｡ All coordinates are relative to the window.

Ttk_MakeBox は便利な機能であって､指定した x, y 座標の領域を width 画素幅､ height 画素高さ､で表現する Ttk_Box 構造を構成する｡ Ttk_MakeBox is a convenience routine that constructs a Ttk_Box structure representing a region width pixels wide, height pixels tall, at the specified x, y coordinates.

Ttk_PadBox は左､上､右､下に沿って padding.で指定された余白を詰める様に縮小し､指定した parcel,の中に位置する新しい箱を返す｡ Ttk_PadBox returns a new box located inside the specified parcel, shrunken according to the left, top, right, and bottom margins specified by padding.

Ttk_ExpandBox は Ttk_PadBox の逆である: padding によって指定される左､上､右､下に沿って余白分を拡張し､指定された parcel に囲まれた新しい箱を返す｡ Ttk_ExpandBox is the inverse of Ttk_PadBox: it returns a new box surrounding the specified parcel, expanded according to the left, top, right, and bottom margins specified by padding.

Ttk_PackBox は幅掛ける高さの画素の区分を空洞の指定された側の上に空洞に沿って縮小して割当てる｡ Ttk_PackBox allocates a parcel width by height pixels wide on the specified side of the cavity, and shrinks the cavity accordingly.

Ttk_StickBox は要求された幅と高さのはこを区画の内側に粘着ビットに従って置く｡ Ttk_StickBox places a box with the requested width and height inside the parcel according to the sticky bits.

Ttk_AnchorBox は要求された幅と高さの箱を指定された錨附加子に従って区画の内に置く｡ Ttk_PlaceBox は Ttk_PackBox と Ttk_StickBox:を結合する: 空洞の指定されたに区画を割り当て､指定された箱を区画の中に粘着に従って置き､空洞を縮小する｡ Ttk_PlaceBox combines Ttk_PackBox and Ttk_StickBox: it allocates a parcel on the specified side of the cavity, places a box of the requested size inside the parcel according to sticky, and shrinks the cavity.

Ttk_BoxContains は x, y 座標が矩形領域箱内にあるか否かを試験する｡ Ttk_AnchorBox places a box with the requested width and height inside the parcel according to the specified anchor option.

Ttk_BoxContains は､指定された x と y 座標は矩形領域箱内部に置かれているか否かを試験する｡ Ttk_BoxContains tests if the specified x, y coordinate lies within the rectangular region box.

### 詰物 PADDDING

Ttk_Padding 構造は縁､内部詰物､外部余白の表現に使用される: The Ttk_Padding structure is used to represent borders, internal padding, and external margins:

    typedef struct {
        short left;
        short top;
        short right;
        short bottom;
    } Ttk_Padding;

Ttk_MakePadding は指定された左､上､右､下の部品により Ttk_Padding 構造を組上げる処理に便利である｡ Ttk_MakePadding is a convenience routine that constructs a Ttk_Padding structure with the specified left, top, right, and bottom components.

Ttk_UniformPadding は指定された縁と等しい全ての部品により Ttk_Padding 構造を組上げる｡ Ttk_UniformPadding constructs a Ttk_Padding structure with all components equal to the specified border.

Ttk_AddPadding は二つの Ttk_Paddings を一緒に加えそれぞれの詰物の総和を含む合同の詰物を返す｡ Ttk_AddPadding adds two Ttk_Paddings together and returns a combined padding containing the sum of the individual padding components.

Ttk_RelievePadding は余分の２画素の詰物を指定された彫り物縁に従って追加する｡もし彫り物が沈み込みである場合､２画素を上と左に追加するので内部領域が下と左に移動する｡もし突出の場合は底と右に２画素を追加するので内部領域は上と右に移動する｡そうでない場合､全ての方向に１画素追加する｡これは押し釦の “押込まれた” 外形を模擬する為の要素の幾何手続函数ないで使用される｡ Ttk_RelievePadding adds an extra 2 pixels of padding to padding according to the specified relief. If relief is TK_RELIEF_SUNKEN, adds two pixels at the top and left so the inner region is shifted down and to the left. If it is TK_RELIEF_RAISED, adds two pixels at the bottom and right so the inner region is shifted up and to the right. Otherwise, adds 1 pixel on all sides. This is typically used in element geometry procedures to simulate a “pressed-in” look for pushbuttons.

### 変換担当譜 CONVERSION ROUTINES

Ttk_GetPaddingFromObj は objPtr 内の文字列を Ttk_Padding 構造に変換する｡文字列の表現は “left top right bottom” の四つまでの長さの詳細のリストである｡もし４要素より少なく指定された場合､底の無為設定は頂と同じであり､右の無為設定は左である｡長さの指定の構文はについては Tk_GetPixelsFromObj(3) を参照されたい｡ Ttk_GetPaddingFromObj converts the string in objPtr to a Ttk_Padding structure. The string representation is a list of up to four length specifications “left top right bottom”. If fewer than four elements are specified, bottom defaults to top, right defaults to left, and top defaults to left. See Tk_GetPixelsFromObj(3) for the syntax of length specifications.

Ttk_GetBorderFromObj は長さが整数として指定されることを除いて Ttk_GetPaddingFromObj と同じである｡ Ttk_GetBorderFromObj is the same as Ttk_GetPaddingFromObj except that the lengths are specified as integers (i.e., resolution-dependent values like 3m are not allowed).

Ttk_GetStickyFromObj は objPtr 内の文字列を粘着のビット櫛に変換する｡その文字列は n か s か e か w の文字を零或はそれ以上個含む｡ Ttk_GetStickyFromObj converts the string in objPtr to a sticky bitmask. The string contains zero or more of the characters n, s, e, or w.

### SEE ALSO

Tk_GetReliefFromObj, Tk_GetPixelsFromObj, Tk_GetAnchorFromObj

### KEYWORDS

geometry, padding, margins, box, region, sticky, relief
Copyright © 2004 Joe English