void CLuaDirSelector::UpdateLayout()
{
    SetButtonWidth(m_pBrowseButton);
    
    int inputw = GetGroup()->w() - Spacing() - m_pBrowseButton->w();
    m_pDirInput->size(inputw, m_pDirInput->h());
    m_pBrowseButton->position(m_pDirInput->x() + inputw + Spacing(), m_pBrowseButton->y());
}
GridCtrl::GridCtrl(wxWindow* parent,
  const Art& art,
  StatusInterface& statusInfo,
  const DialogFunc& showDialog,
  const Accessor<Grid>& grid)
  : wxPanel(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize,
    wxTAB_TRAVERSAL|GRIDCONTROL_BORDER_STYLE),
    m_art(art),
    m_enabled(false),
    m_grid(grid)
{
  m_sizer = make_wx<wxBoxSizer>(wxHORIZONTAL);
  m_txtCurrentSize = grid_text(this, m_sizer, m_showhide, m_art, statusInfo,
    showDialog);
  m_spinButton = grid_spinbutton(this, m_sizer, m_showhide,
    on_spin_up([this](){
      auto g = offset_spacing(m_grid.Get(), +1);
      m_newValue.Set(g.Spacing());
    }),
    on_spin_down([this](){
      auto g = offset_spacing(m_grid.Get(), -1);
      m_newValue.Set(g.Spacing());
  }));

  m_btnToggle = grid_toggle_button(this, m_sizer, art);

  events::on_mouse_right_down(m_txtCurrentSize, [this](const IntPoint&){
    EnableGrid(false);
  });

  SetSizerAndFit(m_sizer);

  events::on_button(m_btnToggle, [this](){
    EnableGrid(!m_enabled);
  });

  events::on_idle(this, [this](){
    if (m_newValue.IsSet()){
      // Update the text in idle-handler, presumably to avoid refresh
      // glitches when dragging the value.
      set_active_grid_spacing(m_grid, m_newValue.Take());
    }
  });

  bind_fwd(this, EVT_FAINT_DRAG_VALUE_CHANGE,
    [this](wxCommandEvent& event){
      m_newValue.Set(event.GetInt());
    });
}
示例#3
0
void
PairsView::_SetPositions()
{
	int32 spacing = Spacing();
	for (int32 i = 0; i < fButtonsCount; i++) {
		fPositionX[i] = fRandomPosition[i] % fRows * (fIconSize + spacing) + spacing;
		fPositionY[i] = fRandomPosition[i] / fCols * (fIconSize + spacing) + spacing;
	}
}
示例#4
0
void
PairsView::_SetPairsBoard()
{
	int32 spacing = Spacing();
	for (int32 i = 0; i < fButtonsCount; i++) {
		BMessage* buttonMessage = new BMessage(kMsgCardButton);
		buttonMessage->AddInt32("button number", i);

		int32 x = i % fRows * (fIconSize + spacing) + spacing;
		int32 y = i / fCols * (fIconSize + spacing) + spacing;

		PairsButton* button = new PairsButton(x, y, fIconSize, buttonMessage);
		fPairsButtonList->AddItem(button);
		AddChild(button);
	}
}
示例#5
0
void
PairsView::FrameResized(float newWidth, float newHeight)
{
	int32 spacing = Spacing();
	for (int32 i = 0; i < fButtonsCount; i++) {
		PairsButton* button = fPairsButtonList->ItemAt(i);
		if (button != NULL) {
			button->ResizeTo(fIconSize, fIconSize);
			int32 x = i % fRows * (fIconSize + spacing) + spacing;
			int32 y = i / fCols * (fIconSize + spacing) + spacing;
			button->MoveTo(x, y);
			button->SetFontSize(fIconSize - 15);
		}
	}

	_SetPositions();
	Invalidate(BRect(0, 0, newWidth, newHeight));
	BView::FrameResized(newWidth, newHeight);
}
示例#6
0
文件: FFont.cpp 项目: mmadia/niue
status_t
FFont::Flatten(void *buffer, ssize_t size) const
{
    if( size < sizeof(flat_font_data) ) return B_BAD_VALUE;

    // Easy reference to the buffer.
    flat_font_data* fdat = (flat_font_data*)buffer;
    memset(fdat,0,sizeof(*fdat));

    // Stash away name of family and style.
    GetFamilyAndStyle(&fdat->family,&fdat->style);

    // This is used as a temporary when byte-swapping floats.
    // Note that we are assuming a float is 4 bytes.
    union {
        uint32 aslong;
        float asfloat;
    } swap;

    // Byte-swap size, shear, and rotation into the flattened
    // structure.  This is written for clarity more than speed,
    // since the additional overhead will be entirely subsumed
    // by everything else going on.
    swap.asfloat = Size();
    swap.aslong = htonl(swap.aslong);
    fdat->size = swap.asfloat;
    swap.asfloat = Shear();
    swap.aslong = htonl(swap.aslong);
    fdat->shear = swap.asfloat;
    swap.asfloat = Rotation();
    swap.aslong = htonl(swap.aslong);
    fdat->rotation = swap.asfloat;

    // Byte-swap the remaining data into the flattened structure.
    fdat->flags = htonl(Flags());
    fdat->face = htons(Face());
    fdat->spacing = Spacing();
    fdat->encoding = Encoding();
    fdat->mask = htonl(Mask());

    return B_NO_ERROR;
}
示例#7
0
// Draw keychain
void _InventoryScreen::DrawKeys() {

	glm::vec2 StartOffset(10, 20);
	glm::vec2 Spacing(120, 20);
	int Column = 0;
	int Row = 0;

	_Bag &Bag = HUD->Player->Inventory->GetBag(BagType::KEYS);

	// No keys
	if(!Bag.Slots.size()) {
		glm::vec2 DrawPosition = KeysElement->Bounds.Start + StartOffset;
		ae::Assets.Fonts["hud_tiny"]->DrawText("No keys", DrawPosition, ae::LEFT_BASELINE, ae::Assets.Colors["gray"]);

		return;
	}

	// Draw key names
	for(size_t i = 0; i < Bag.Slots.size(); i++) {

		// Get inventory slot
		_InventorySlot *Slot = &Bag.Slots[i];
		if(Slot->Item) {

			// Get position
			glm::vec2 DrawPosition = KeysElement->Bounds.Start + StartOffset + glm::vec2(Spacing.x * Column, Spacing.y * Row);
			ae::Assets.Fonts["hud_tiny"]->DrawText(Slot->Item->Name, DrawPosition);

			// Update position
			Row++;
			if(Row >= 14) {
				Column++;
				Row = 0;
			}
		}
	}
}
示例#8
0
文件: FFont.cpp 项目: mmadia/niue
void FFont::UpdateTo(BFont* font, uint32 mask) const
{
    if( !font ) return;

    mask &= attrMask;
    if( (mask&B_FONT_ALL) == B_FONT_ALL ) {
        // Quickly copy everything.
        *font = *(BFont*)this;
        return;
    }

    // Only copy specific fields.
    if( mask & B_FONT_FAMILY_AND_STYLE ) {
        font->SetFamilyAndStyle(FamilyAndStyle());
    }
    if( mask & B_FONT_SIZE ) {
        font->SetSize(Size());
    }
    if( mask & B_FONT_SHEAR ) {
        font->SetShear(Shear());
    }
    if( mask & B_FONT_ROTATION ) {
        font->SetRotation(Rotation());
    }
    if( mask & B_FONT_SPACING ) {
        font->SetSpacing(Spacing());
    }
    if( mask & B_FONT_ENCODING ) {
        font->SetEncoding(Encoding());
    }
    if( mask & B_FONT_FACE ) {
        font->SetFace(Face());
    }
    if( mask & B_FONT_FLAGS ) {
        font->SetFlags(Flags());
    }
}
示例#9
0
void ParagraphParameters::read(Lexer & lex, bool merge)
{
	if (!merge)
		clear();
	while (lex.isOK()) {
		lex.nextToken();
		string const token = lex.getString();

		if (token.empty())
			continue;

		if (token[0] != '\\') {
			lex.pushToken(token);
			break;
		}

		if (token == "\\noindent") {
			noindent(true);
		} else if (token == "\\indent") {
			//not found in LyX files but can be used with lfuns
			noindent(false);
		} else if (token == "\\indent-toggle") {
			//not found in LyX files but can be used with lfuns
			noindent(!noindent());
		} else if (token == "\\leftindent") {
			lex.next();
			Length value(lex.getString());
			leftIndent(value);
		} else if (token == "\\start_of_appendix") {
			startOfAppendix(true);
		} else if (token == "\\paragraph_spacing") {
			lex.next();
			string const tmp = rtrim(lex.getString());
			if (tmp == "default") {
				//not found in LyX files but can be used with lfuns
				spacing(Spacing(Spacing::Default));
			} else if (tmp == "single") {
				spacing(Spacing(Spacing::Single));
			} else if (tmp == "onehalf") {
				spacing(Spacing(Spacing::Onehalf));
			} else if (tmp == "double") {
				spacing(Spacing(Spacing::Double));
			} else if (tmp == "other") {
				lex.next();
				spacing(Spacing(Spacing::Other,
						 lex.getString()));
			} else {
				lex.printError("Unknown spacing token: '$$Token'");
			}
		} else if (token == "\\align") {
			lex.next();
			int tmpret = findToken(string_align, lex.getString());
			if (tmpret == -1)
				++tmpret;
			align(LyXAlignment(1 << tmpret));
		} else if (token == "\\labelwidthstring") {
			lex.eatLine();
			labelWidthString(lex.getDocString());
		} else {
			lex.pushToken(token);
			break;
		}
	}
}
示例#10
0
文件: convolute.c 项目: jalkanen/ppt
int GetConvArgs( FRAME *frame, struct TagItem *tags, struct PPTBase *xd, struct convargs *cargs )
{
    Object *Win, *wtgroup, *weights[7][7], *Bias, *Frq, *Name, *Div;
    ULONG sigmask, sig, rc;
    int quit = FALSE, res = PERR_OK,i,j;
    struct Window *win;
    struct IntuitionBase *IntuitionBase = xd->lb_Intuition;
    struct ExecBase *SysBase = xd->lb_Sys;
    struct Library *BGUIBase = xd->lb_BGUI;
    char *name = "Unknown";

#ifdef DEBUG_MODE
    PDebug("\tCreating window object\n");
#endif

    Win = WindowObject,
        WINDOW_Screen,    xd->g->maindisp->scr,
        WINDOW_Title,     frame->nd.ln_Name,
        WINDOW_Font,      xd->g->userprefs->mainfont,
        WINDOW_ScreenTitle, "Convolute Tool",
        WINDOW_ScaleWidth, 20,
        WINDOW_MenuStrip, Menus,
        TAG_SKIP,         (cargs->winpos.Height == 0) ? 1 : 0,
        WINDOW_Bounds,    &(cargs->winpos),
        WINDOW_NoBufferRP, TRUE,
        WINDOW_MasterGroup,
            VGroupObject, Spacing(4), HOffset(6), VOffset(4),
                StartMember,
                    Name = InfoFixed("Name:","",NULL,1),
                EndMember,
                StartMember,
                    HGroupObject, Spacing(4), HOffset(4),
                        StartMember,
                            /* Grid */
                            wtgroup = VGroupObject,
                                StartMember,
                                    HGroupObject,
                                        StartMember,
                                            weights[0][0] = Integer(NULL,0,3,GID_W00),
                                        EndMember,
                                        StartMember,
                                            weights[0][1] = Integer(NULL,0,3,GID_W01),
                                        EndMember,
                                        StartMember,
                                            weights[0][2] = Integer(NULL,0,3,GID_W02),
                                        EndMember,
                                        StartMember,
                                            weights[0][3] = Integer(NULL,0,3,GID_W03),
                                        EndMember,
                                        StartMember,
                                            weights[0][4] = Integer(NULL,0,3,GID_W04),
                                        EndMember,
                                        StartMember,
                                            weights[0][5] = Integer(NULL,0,3,GID_W05),
                                        EndMember,
                                        StartMember,
                                            weights[0][6] = Integer(NULL,0,3,GID_W06),
                                        EndMember,
                                    EndObject,
                                EndMember,
                                StartMember,
                                    HGroupObject,
                                        StartMember,
                                            weights[1][0] = Integer(NULL,0,3,GID_W10),
                                        EndMember,
                                        StartMember,
                                            weights[1][1] = Integer(NULL,0,3,GID_W11),
                                        EndMember,
                                        StartMember,
                                            weights[1][2] = Integer(NULL,0,3,GID_W12),
                                        EndMember,
                                        StartMember,
                                            weights[1][3] = Integer(NULL,0,3,GID_W13),
                                        EndMember,
                                        StartMember,
                                            weights[1][4] = Integer(NULL,0,3,GID_W14),
                                        EndMember,
                                        StartMember,
                                            weights[1][5] = Integer(NULL,0,3,GID_W15),
                                        EndMember,
                                        StartMember,
                                            weights[1][6] = Integer(NULL,0,3,GID_W16),
                                        EndMember,
                                    EndObject,
                                EndMember,
                                StartMember,
                                    HGroupObject,
                                        StartMember,
                                            weights[2][0] = Integer(NULL,0,3,GID_W20),
                                        EndMember,
                                        StartMember,
                                            weights[2][1] = Integer(NULL,0,3,GID_W21),
                                        EndMember,
                                        StartMember,
                                            weights[2][2] = Integer(NULL,0,3,GID_W22),
                                        EndMember,
                                        StartMember,
                                            weights[2][3] = Integer(NULL,0,3,GID_W23),
                                        EndMember,
                                        StartMember,
                                            weights[2][4] = Integer(NULL,0,3,GID_W24),
                                        EndMember,
                                        StartMember,
                                            weights[2][5] = Integer(NULL,0,3,GID_W25),
                                        EndMember,
                                        StartMember,
                                            weights[2][6] = Integer(NULL,0,3,GID_W26),
                                        EndMember,
                                    EndObject,
                                EndMember,
                                StartMember,
                                    HGroupObject,
                                        StartMember,
                                            weights[3][0] = Integer(NULL,0,3,GID_W30),
                                        EndMember,
                                        StartMember,
                                            weights[3][1] = Integer(NULL,0,3,GID_W31),
                                        EndMember,
                                        StartMember,
                                            weights[3][2] = Integer(NULL,0,3,GID_W32),
                                        EndMember,
                                        StartMember,
                                            weights[3][3] = Integer(NULL,1,3,GID_W33),
                                        EndMember,
                                        StartMember,
                                            weights[3][4] = Integer(NULL,0,3,GID_W34),
                                        EndMember,
                                        StartMember,
                                            weights[3][5] = Integer(NULL,0,3,GID_W35),
                                        EndMember,
                                        StartMember,
                                            weights[3][6] = Integer(NULL,0,3,GID_W36),
                                        EndMember,
                                    EndObject,
                                EndMember,
                                StartMember,
                                    HGroupObject,
                                        StartMember,
                                            weights[4][0] = Integer(NULL,0,3,GID_W40),
                                        EndMember,
                                        StartMember,
                                            weights[4][1] = Integer(NULL,0,3,GID_W41),
                                        EndMember,
                                        StartMember,
                                            weights[4][2] = Integer(NULL,0,3,GID_W42),
                                        EndMember,
                                        StartMember,
                                            weights[4][3] = Integer(NULL,0,3,GID_W43),
                                        EndMember,
                                        StartMember,
                                            weights[4][4] = Integer(NULL,0,3,GID_W44),
                                        EndMember,
                                        StartMember,
                                            weights[4][5] = Integer(NULL,0,3,GID_W45),
                                        EndMember,
                                        StartMember,
                                            weights[4][6] = Integer(NULL,0,3,GID_W46),
                                        EndMember,
                                    EndObject,
                                EndMember,
                                StartMember,
                                    HGroupObject,
                                        StartMember,
                                            weights[5][0] = Integer(NULL,0,3,GID_W50),
                                        EndMember,
                                        StartMember,
                                            weights[5][1] = Integer(NULL,0,3,GID_W51),
                                        EndMember,
                                        StartMember,
                                            weights[5][2] = Integer(NULL,0,3,GID_W52),
                                        EndMember,
                                        StartMember,
                                            weights[5][3] = Integer(NULL,0,3,GID_W53),
                                        EndMember,
                                        StartMember,
                                            weights[5][4] = Integer(NULL,0,3,GID_W54),
                                        EndMember,
                                        StartMember,
                                            weights[5][5] = Integer(NULL,0,3,GID_W55),
                                        EndMember,
                                        StartMember,
                                            weights[5][6] = Integer(NULL,0,3,GID_W56),
                                        EndMember,
                                    EndObject,
                                EndMember,
                                StartMember,
                                    HGroupObject,
                                        StartMember,
                                            weights[6][0] = Integer(NULL,0,3,GID_W60),
                                        EndMember,
                                        StartMember,
                                            weights[6][1] = Integer(NULL,0,3,GID_W61),
                                        EndMember,
                                        StartMember,
                                            weights[6][2] = Integer(NULL,0,3,GID_W62),
                                        EndMember,
                                        StartMember,
                                            weights[6][3] = Integer(NULL,0,3,GID_W63),
                                        EndMember,
                                        StartMember,
                                            weights[6][4] = Integer(NULL,0,3,GID_W64),
                                        EndMember,
                                        StartMember,
                                            weights[6][5] = Integer(NULL,0,3,GID_W65),
                                        EndMember,
                                        StartMember,
                                            weights[6][6] = Integer(NULL,0,3,GID_W66),
                                        EndMember,
                                    EndObject,
                                EndMember,
                                StartMember,
                                    HGroupObject, Spacing(4),
                                        StartMember,
                                            Bias = Integer("Bias:",0,4,GID_BIAS),
                                        EndMember,
                                        StartMember,
                                            Div = Integer("Div:",1,4,GID_DIV),
                                        EndMember,
                                    EndObject,
                                EndMember,
                            EndObject, Weight(75),
                        EndMember,
                        StartMember,
                            VGroupObject, Spacing(4),
                                StartMember,
                                    XenButton("Load",GID_LOAD),
                                EndMember,
                                StartMember,
                                    XenButton("Save",GID_SAVE),
                                EndMember,
                                StartMember,
                                    XenButton("Clear",GID_CLEAR),
                                EndMember,
                                StartMember,
                                    XenButton("Convolute!",GID_OK),
                                EndMember,
                                StartMember,
                                    XenButton("Cancel",GID_CANCEL),
                                EndMember,
                            EndObject, Weight(10),
                        EndMember,
                    EndObject,
                EndMember,
            EndObject, /* MasterVGroup */
        EndObject; /* Window */

    if(Win) {
#ifdef DEBUG_MODE
        PDebug("\tSucceeded in creating window\n");
#endif

        for(i = 0; i < 7; i++) {
            for(j = 0; j < 7; j++) {
                SetGadgetAttrs( (struct Gadget *)weights[i][j], NULL, NULL,
                                STRINGA_LongVal, cargs->weights[i][j], TAG_DONE );
            }
        }
        SetGadgetAttrs( (struct Gadget *)Bias, NULL, NULL, STRINGA_LongVal, cargs->bias, TAG_DONE);
        SetGadgetAttrs( (struct Gadget *)Div, NULL, NULL, STRINGA_LongVal, cargs->div, TAG_DONE);
        SetGadgetAttrs( (struct Gadget *)Name, NULL, NULL, INFO_TextFormat, cargs->name, TAG_DONE);

        if( win = WindowOpen( Win ) ) {
#ifdef DEBUG_MODE
            PDebug("\tOpened window OK\n");
#endif
            Frq = FileReqObject,
                    ASLFR_Window, win,
                    ASLFR_SleepWindow, TRUE,
                    ASLFR_InitialDrawer, "PROGDIR:modules/convolutions",
                    ASLFR_InitialPattern,"~(#?.info)",
                  EndObject;
            GetAttr( WINDOW_SigMask, Win, &sigmask );

            while(!quit) {
                sig = Wait(sigmask | SIGBREAKF_CTRL_C | SIGBREAKF_CTRL_F);

                /*
                 *  Break signal
                 */

                if( sig & SIGBREAKF_CTRL_C ) {
                    quit = TRUE;
                    res = PERR_BREAK;
                }

                if( sig & SIGBREAKF_CTRL_F ) {
                    WindowToFront( win );
                    ActivateWindow( win );
                }

                /*
                 *  Gadget message
                 */

                if( sig & sigmask ) {
                    while(( rc = HandleEvent( Win )) != WMHI_NOMORE ) {
                        struct TagItem clrtable[] = { STRINGA_LongVal, 0, TAG_END };
                        struct TagItem nonametable[] = { INFO_TextFormat, (ULONG)"unnamed", TAG_END };
                        struct TagItem settable[] = {STRINGA_LongVal, 0, TAG_END };
                        struct TagItem frqloadtable[] = {ASLFR_DoSaveMode, FALSE, TAG_END };
                        struct TagItem newnametable[] = {INFO_TextFormat, NULL, TAG_END };
                        struct TagItem frqsavetable[] = {ASLFR_DoSaveMode, TRUE, TAG_END };
                        struct TagItem nametable[] = {INFO_TextFormat, NULL, TAG_END };
                        int id;

                        switch(rc) {
                            case WMHI_CLOSEWINDOW:
                            case GID_CANCEL:
                                res = PERR_CANCELED;
                                quit = TRUE;
                                WindowClose(Win);
                                break;

                            case GID_CLEAR:
                                WindowBusy(Win);
                                clrtable[0].ti_Data = 0;
                                SetGadgetAttrsA( (struct Gadget *)Bias, win, NULL, clrtable);
                                for(i = 0; i < 7; i++) {
                                    for(j = 0; j < 7; j++) {
                                        SetGadgetAttrsA( (struct Gadget *)weights[i][j], win,
                                                         NULL, clrtable );
                                        cargs->weights[i][j] = 0;
                                    }
                                }
                                clrtable[0].ti_Data = 1; /* For Divisor & Middle value. */

                                SetGadgetAttrsA( (struct Gadget *)weights[3][3], win,
                                                 NULL, clrtable );
                                cargs->weights[3][3] = 1;

                                clrtable[0].ti_Data = 1; /* For Divisor */
                                SetGadgetAttrsA( (struct Gadget *)Div, win, NULL, clrtable);
                                SetGadgetAttrsA( (struct Gadget *) Name, win, NULL, nonametable);
                                WindowReady(Win);
                                break;

                            case GID_LOAD:
                                SetAttrsA( Frq, frqloadtable );
                                if(DoRequest( Frq ) == FRQ_OK) {
                                    GetAttr( FRQ_Path, Frq, (ULONG *)&name );
                                    WindowBusy(Win);
                                    if(LoadConvFilter( xd, name, cargs ) == PERR_OK ) {
                                        for(i = 0; i < 7; i++) {
                                            for(j = 0; j < 7; j++) {
                                                settable[0].ti_Data = cargs->weights[i][j];
                                                SetGadgetAttrsA( (struct Gadget *)weights[i][j], win,
                                                    NULL, settable );
                                            }
                                        }
                                        settable[0].ti_Data = cargs->bias;
                                        SetGadgetAttrsA( (struct Gadget *)Bias, win, NULL, settable);
                                        settable[0].ti_Data = cargs->div;
                                        SetGadgetAttrsA( (struct Gadget *)Div, win, NULL, settable);
                                        GetAttr( FRQ_File, Frq, (ULONG *) &newnametable[0].ti_Data );
                                        SetGadgetAttrsA( (struct Gadget *) Name, win, NULL, newnametable);
                                    }
                                    WindowReady(Win);
                                }
                                break;

                            case GID_SAVE:
                                SetAttrsA( Frq, frqsavetable );
                                if(DoRequest(Frq) == FRQ_OK) {
                                    WindowBusy(Win);
                                    GetAttr( FRQ_Path, Frq, (ULONG *)&name );
                                    for(i = 0; i < 7; i++) {
                                        for(j = 0; j < 7; j++) {
                                            GetAttr( STRINGA_LongVal, weights[i][j], (ULONG *) &(cargs->weights[i][j]) );
                                        }
                                    }
                                    GetAttr( STRINGA_LongVal, Bias, (ULONG *) &(cargs->bias));
                                    GetAttr( STRINGA_LongVal, Div, (ULONG *) &(cargs->div));
                                    SaveConvFilter( xd, name, cargs );
                                    GetAttr( FRQ_File, Frq, &nametable[0].ti_Data );
                                    SetGadgetAttrsA( (struct Gadget *) Name, win, NULL, nametable);
                                    WindowReady(Win);
                                }
                                break;

                            case GID_OK:
                                GetAttr( STRINGA_LongVal, Bias, (ULONG *) &(cargs->bias));
                                GetAttr( STRINGA_LongVal, Div, (ULONG *) &(cargs->div));
                                GetAttr( WINDOW_Bounds, Win, (ULONG *) &(cargs->winpos) );
                                if( cargs->div != 0 ) {
                                    WindowClose(Win);
                                    for(i = 0; i < 7; i++) {
                                        for(j = 0; j < 7; j++) {
                                            GetAttr( STRINGA_LongVal, weights[i][j], (ULONG *) &(cargs->weights[i][j]) );
                                        }
                                    }
                                    GetAttr( STRINGA_LongVal, Bias, (ULONG *) &(cargs->bias));
                                    GetAttr( STRINGA_LongVal, Div, (ULONG *) &(cargs->div));
                                    strncpy( cargs->name, name, 40 );
                                    res = PERR_OK;
                                    quit = TRUE;
                                }
                                break;

                            default:

                                if(rc >= OPR(0) && rc <= OPR(1000)) { /* It's a default opr */
                                    WindowBusy(Win);
                                    for(id = 0; presets[id].id != rc && presets[id].id != 0L; id++); /* Fetch correct area. */
                                    if(presets[id].id) {
                                        for(i = 0; i < 7; i++) {
                                            for(j = 0; j < 7; j++) {
                                                settable[0].ti_Data = cargs->weights[i][j] = presets[id].weights[i][j];
                                                SetGadgetAttrsA( (struct Gadget *)weights[i][j], win,
                                                    NULL, settable );
                                            }
                                        }
                                        settable[0].ti_Data = cargs->bias = presets[id].bias;
                                        SetGadgetAttrsA( (struct Gadget *)Bias, win, NULL, settable);
                                        settable[0].ti_Data = cargs->div = presets[id].div;
                                        SetGadgetAttrsA( (struct Gadget *)Div,  win, NULL, settable);
                                        newnametable[0].ti_Data = name = (ULONG)presets[id].name;
                                        SetGadgetAttrsA( (struct Gadget *)Name, win, NULL, newnametable);
                                    }
#ifdef DEBUG_MODE
                                    else {
                                        PDebug("Serious software error!!!\n");
                                    }
#endif
                                    WindowReady(Win);
                                }
                                break;

                        } /* switch */
                    } /* while */
                } /* sig & sigmask */

            } /* while(!quit) */

            DisposeObject(Win);
            DisposeObject(Frq);
        } else {
#ifdef DEBUG_MODE
            PDebug("\tFailed to get window\n");
#endif
            DisposeObject(Win);
            return PERR_WONTOPEN;
        }
    } else {
#ifdef DEBUG_MODE
        PDebug("\tFailed to get window object\n");
#endif
        return PERR_WONTOPEN;
    }

    return res;
}
示例#11
0
/*
    The following cases apply:

    Make black transparent
    Make white transparent
    Make any color transparent
    Make background transparent
 */
PERROR OpenGUI(FRAME *frame, struct Objects *o, struct Values *v, struct PPTBase *PPTBase)
{
    struct Library *BGUIBase = PPTBase->lb_BGUI;
    struct Screen *scr = PPTBase->g->maindisp->scr;
    struct Library *ColorWheelBase = o->ColorWheelBase;
    struct GfxBase *GfxBase = PPTBase->lb_Gfx;
    struct IntuitionBase *IntuitionBase = PPTBase->lb_Intuition;
    BOOL   V39 = FALSE;
    struct ColorWheelRGB rgb;
    struct ColorWheelHSB hsb;

    sprintf(o->wtitle, MYNAME ": %s", frame->name );

    if( PPTBase->lb_Gfx->LibNode.lib_Version >= 39 ) {
        int i;

        V39 = TRUE;
        rgb.cw_Red   = 0;
        rgb.cw_Green = 0;
        rgb.cw_Blue  = 0;
        ConvertRGBToHSB( &rgb, &hsb );

        for( i = 0; i < GRADCOLORS; i++ ) {
            hsb.cw_Brightness = (ULONG)0xffffffff - (((ULONG)0xffffffff / GRADCOLORS ) * i );
            ConvertHSBToRGB( &hsb, &rgb );
            if( -1 == (o->pens[i] = ObtainBestPen( scr->ViewPort.ColorMap,
                                                  rgb.cw_Red, rgb.cw_Green, rgb.cw_Blue,
                                                  TAG_DONE ) ) ) {
                break;
            }
        }
        o->pens[i] = ~0;
        o->numpens = i;

        o->Gradient = ExternalObject,
            GA_ID,          GID_GRADIENTSLIDER,
            EXT_MinWidth,   10,
            EXT_MinHeight,  10,
            EXT_ClassID,    "gradientslider.gadget",
            EXT_NoRebuild,  TRUE,
            GRAD_PenArray,  o->pens,
            PGA_Freedom,    LORIENT_VERT,
        EndObject;

        if( o->Gradient )
            GetAttr( EXT_Object, o->Gradient, (ULONG *) &o->RealGradient );
    }

    o->Win = WindowObject,
        WINDOW_Screen,      scr,
        WINDOW_Title,       o->wtitle,
        WINDOW_ScreenTitle, "Transparency: Click on the image to choose a color",
        v->window.Height ? TAG_IGNORE : TAG_SKIP, 1,
        WINDOW_Bounds,      &v->window,

        WINDOW_ScaleWidth,  30,
        WINDOW_NoBufferRP,  TRUE,
        WINDOW_MenuStrip,   mymenus,
        // WINDOW_HelpFile,    "Docs/effects.guide",
        // WINDOW_HelpNode,    "Transparency",
        // WINDOW_HelpText,    infoblurb,
        WINDOW_CloseOnEsc,  TRUE,
        WINDOW_MasterGroup,
            VGroupObject, Spacing(4), HOffset(6), VOffset(4),
                StartMember,
                    HGroupObject, Spacing(6),
                        StartMember,
                            VGroupObject, Spacing(4),
                                StartMember,
                                    InfoObject,
                                        INFO_TextFormat, ISEQ_C "Please, do select\n"
                                                         "which color should be\n"
                                                         "transparent:",
                                        INFO_MinLines, 3,
                                        ButtonFrame, FRM_Flags, FRF_RECESSED,
                                    EndObject,
                                    LGO_NoAlign, TRUE,
                                EndMember,
                                VarSpace(25),
                                StartMember,
                                    VGroupObject,
                                        StartMember,
                                            HGroupObject, Spacing(3),
                                                StartMember,
                                                    o->Red = SliderObject,
                                                        GA_ID, GID_RED,
                                                        Label("Red"), Place(PLACE_LEFT),
                                                        SLIDER_Min, 0,
                                                        SLIDER_Max, 255,
                                                        SLIDER_Level, v->r,
                                                    EndObject,
                                                EndMember,
                                                StartMember,
                                                    o->RedI = StringObject,
                                                        GA_ID, GID_REDI,
                                                        STRINGA_MinCharsVisible,4,
                                                        STRINGA_MaxChars, 3,
                                                        STRINGA_IntegerMin, 0,
                                                        STRINGA_IntegerMax, 255,
                                                        STRINGA_LongVal, v->r,
                                                    EndObject, Weight(1),
                                                EndMember,
                                            EndObject, FixMinHeight,
                                        EndMember,
                                        StartMember,
                                            HGroupObject, Spacing(3),
                                                StartMember,
                                                    o->Green = SliderObject,
                                                        GA_ID, GID_GREEN,
                                                        Label("Green"), Place(PLACE_LEFT),
                                                        SLIDER_Min, 0,
                                                        SLIDER_Max, 255,
                                                        SLIDER_Level, v->g,
                                                    EndObject,
                                                EndMember,
                                                StartMember,
                                                    o->GreenI = StringObject,
                                                        GA_ID, GID_GREENI,
                                                        STRINGA_MinCharsVisible,4,
                                                        STRINGA_MaxChars, 3,
                                                        STRINGA_IntegerMin, 0,
                                                        STRINGA_IntegerMax, 255,
                                                        STRINGA_LongVal, v->g,
                                                    EndObject, Weight(1),
                                                EndMember,
                                            EndObject, FixMinHeight,
                                        EndMember,
                                        StartMember,
                                            HGroupObject, Spacing(3),
                                                StartMember,
                                                    o->Blue = SliderObject,
                                                        GA_ID, GID_BLUE,
                                                        Label("Blue"), Place(PLACE_LEFT),
                                                        SLIDER_Min, 0,
                                                        SLIDER_Max, 255,
                                                        SLIDER_Level, v->b,
                                                    EndObject,
                                                EndMember,
                                                StartMember,
                                                    o->BlueI = StringObject,
                                                        GA_ID, GID_BLUEI,
                                                        STRINGA_MinCharsVisible,4,
                                                        STRINGA_MaxChars, 3,
                                                        STRINGA_IntegerMin, 0,
                                                        STRINGA_IntegerMax, 255,
                                                        STRINGA_LongVal, v->b,
                                                    EndObject, Weight(1),
                                                EndMember,
                                            EndObject,  FixMinHeight,
                                        EndMember,
                                     EndObject,
                                EndMember,
                                VarSpace(25),
                            EndObject,  LGO_NoAlign, TRUE,
                        EndMember,
                        (V39) ? TAG_IGNORE : TAG_SKIP, 2,
                        StartMember,
                            o->Wheel = ExternalObject,
                                EXT_MinWidth,           30,
                                EXT_MinHeight,          30,
                                EXT_ClassID,            "colorwheel.gadget",
                                WHEEL_Screen,           scr,
                                /*
                                **      Pass a pointer to the "real" gradient slider
                                **      here.
                                **/
                                WHEEL_GradientSlider,   o->RealGradient,
                                WHEEL_Red,              v->r * 0x01010101,
                                WHEEL_Green,            v->g * 0x01010101,
                                WHEEL_Blue,             v->b * 0x01010101,
                                GA_FollowMouse,         TRUE,
                                GA_ID,                  GID_WHEEL,
                                /*
                                **      These attributes of the colorwheel are
                                **      tracked and reset to the object after
                                **      it has been rebuild. This way the current
                                **      colorwheel internals will not be lost
                                **      after the object is re-build.
                                **/
                                EXT_TrackAttr,          WHEEL_Red,
                                EXT_TrackAttr,          WHEEL_Green,
                                EXT_TrackAttr,          WHEEL_Blue,
                                EXT_TrackAttr,          WHEEL_Hue,
                                EXT_TrackAttr,          WHEEL_Saturation,
                                EXT_TrackAttr,          WHEEL_Brightness,
                            EndObject,
                        EndMember,
                        (V39) ? TAG_IGNORE : TAG_SKIP, 3,
                        StartMember,
                            o->Gradient, FixWidth(20),
                        EndMember,
                    EndObject, LGO_NoAlign, TRUE,
                EndMember,
                StartMember,
                    HGroupObject,
                        StartMember,
                            o->Trans = SliderObject,
                                GA_ID, GID_TRANSPARENCY,
                                Label("Transparency:"), Place(PLACE_LEFT),
                                SLIDER_Min, 0,
                                SLIDER_Max, 255,
                                SLIDER_Level, v->transp,
                            EndObject,
                        EndMember,
                        StartMember,
                            o->TransI = StringObject,
                                GA_ID, GID_TRANSPARENCYI,
                                STRINGA_MinCharsVisible,4,
                                STRINGA_MaxChars, 3,
                                STRINGA_IntegerMin, 0,
                                STRINGA_IntegerMax, 255,
                                STRINGA_LongVal, v->transp,
                            EndObject, Weight(1),
                        EndMember,
                    EndObject, FixMinHeight,
                EndMember,
                StartMember,
                    HGroupObject, NormalSpacing,
                        StartMember,
                            o->All = CheckBoxObject,
                                GA_ID, GID_ALL,
                                Label("All colors?"),
                                GA_Selected, (v->mode == MODE_ALL) ? TRUE : FALSE,
                            EndObject, Weight(1),
                        EndMember,
                        StartMember,
                            o->Tolerance = SliderObject,
                                GA_ID, GID_TOLERANCE,
                                Label("Tolerance:"), Place(PLACE_LEFT),
                                SLIDER_Min, 0,
                                SLIDER_Max, 255,
                                SLIDER_Level, v->tolerance,
                            EndObject,
                        EndMember,
                        StartMember,
                            o->ToleranceI = StringObject,
                                GA_ID, GID_TOLERANCEI,
                                STRINGA_MinCharsVisible, 4,
                                STRINGA_MaxChars, 3,
                                STRINGA_IntegerMin, 0,
                                STRINGA_IntegerMax, 255,
                                STRINGA_LongVal, v->tolerance,
                            EndObject, Weight(1),
                        EndMember,
                    EndObject, FixMinHeight,
                EndMember,
                StartMember,
                    HorizSeparator,
                EndMember,
                StartMember,
                    HGroupObject,
                        StartMember,
                            ButtonObject,
                                GA_ID, GID_OK,
                                Label("OK"), Place(PLACE_IN),
                            EndObject,
                        EndMember,
                        VarSpace(DEFAULT_WEIGHT/2),
                        StartMember,
                            ButtonObject,
                                GA_ID, GID_CANCEL,
                                Label("Cancel"), Place(PLACE_IN),
                            EndObject,
                        EndMember,
                    EndObject, FixMinHeight,
                EndMember,
            EndObject,
    EndObject;

    if( o->Win ) {

        /*
         *  Attach the gadgets unto each other
         */

        AddMap( o->Trans, o->TransI, dpcol_sl2int );
        AddMap( o->TransI,o->Trans,  dpcol_int2sl );
        AddMap( o->Red, o->RedI, dpcol_sl2int );
        AddMap( o->RedI,o->Red,  dpcol_int2sl );
        AddMap( o->Green, o->GreenI, dpcol_sl2int );
        AddMap( o->GreenI,o->Green,  dpcol_int2sl );
        AddMap( o->Blue, o->BlueI, dpcol_sl2int );
        AddMap( o->BlueI,o->Blue,  dpcol_int2sl );
        AddMap( o->Tolerance, o->ToleranceI, dpcol_sl2int );
        AddMap( o->ToleranceI,o->Tolerance,  dpcol_int2sl );

        AddCondit( o->All, o->Red, GA_Selected, FALSE,
                   GA_Disabled, FALSE, GA_Disabled, TRUE );
        AddCondit( o->All, o->RedI, GA_Selected, FALSE,
                   GA_Disabled, FALSE, GA_Disabled, TRUE );
        AddCondit( o->All, o->Green, GA_Selected, FALSE,
                   GA_Disabled, FALSE, GA_Disabled, TRUE );
        AddCondit( o->All, o->GreenI, GA_Selected, FALSE,
                   GA_Disabled, FALSE, GA_Disabled, TRUE );
        AddCondit( o->All, o->Blue, GA_Selected, FALSE,
                   GA_Disabled, FALSE, GA_Disabled, TRUE );
        AddCondit( o->All, o->BlueI, GA_Selected, FALSE,
                   GA_Disabled, FALSE, GA_Disabled, TRUE );
        AddCondit( o->All, o->ToleranceI, GA_Selected, FALSE,
                   GA_Disabled, FALSE, GA_Disabled, TRUE );
        AddCondit( o->All, o->Tolerance, GA_Selected, FALSE,
                   GA_Disabled, FALSE, GA_Disabled, TRUE );
        if(V39) {
            AddCondit( o->All, o->Wheel, GA_Selected, FALSE,
                       GA_Disabled, FALSE, GA_Disabled, TRUE );
            AddCondit( o->All, o->Gradient, GA_Selected, FALSE,
                       GA_Disabled, FALSE, GA_Disabled, TRUE );
        }

        if( o->win = WindowOpen(o->Win) ) {
            /* This sets the other gadgets disabled or enabled */
            SetGadgetAttrs( (struct Gadget *)o->All, o->win, NULL,
                            GA_Selected, (v->mode == MODE_ALL) ? TRUE : FALSE, TAG_DONE );
        } else {
            DisposeObject(o->Win);
        }
    }

    return (BOOL)(o->win ? PERR_OK : PERR_WINDOWOPEN);
}
示例#12
0
float TerrainMipMapLevel::WorldLength() {
	return (m_baseGrid->Size()-1)*Spacing();
}
void
FontDemoView::_DrawView(BView* view)
{
	if (!view)
		return;

	view->SetDrawingMode(B_OP_COPY);


	BRect rect = view->Bounds();
	view->SetHighColor(255, 255, 255);
	view->FillRect(rect);

	if (!fString)
		return;

	view->SetFont(&fFont, B_FONT_ALL);

	const size_t size = strlen(fString);
	BRect boundBoxes[size];

	if (OutLineLevel())
		fFont.GetGlyphShapes(fString, size, fShapes);
	else
		fFont.GetBoundingBoxesAsGlyphs(fString, size, B_SCREEN_METRIC, boundBoxes);

	float escapementArray[size];
	//struct escapement_delta escapeDeltas[size];
	struct edge_info edgeInfo[size];
/*
	for (size_t j = 0; j < size; j++) {
		escapeDeltas[j].nonspace = 0.0f;
		escapeDeltas[j].space = 0.0f;
	}
*/
	fFont.GetEdges(fString, size, edgeInfo);
	fFont.GetEscapements(fString, size, /*escapeDeltas,*/ escapementArray);

	font_height fh;
	fFont.GetHeight(&fh);

	float xCoordArray[size];
	float yCoordArray[size];

	float yCoord = (rect.Height() + fh.ascent - fh.descent) / 2;
	float xCoord = -rect.Width() / 2;
	const float xCenter = xCoord * -1;
	const float r = Rotation() * (M_PI / 180.0);
	const float cosinus = cos(r);
	const float sinus = -sin(r);

	// When the bounding boxes workes properly we will invalidate only the
	// region area instead of the whole view.

	fBoxRegion.MakeEmpty();

	for (size_t i = 0; i < size; i++) {
		xCoordArray[i] = 0.0f;
		yCoordArray[i] = 0.0f;

		yCoordArray[i] = sinus * (xCoord - xCoordArray[i]);
		xCoordArray[i] = cosinus * xCoord;

		xCoordArray[i] += xCenter;
		yCoordArray[i] += yCoord;

		boundBoxes[i].OffsetBy(xCoordArray[i], yCoordArray[i]);

		if (OutLineLevel()) {
			view->MovePenTo(xCoordArray[i], yCoordArray[i]);
			view->SetHighColor(ui_color(B_PANEL_BACKGROUND_COLOR));
			view->FillShape(fShapes[i]);
			view->SetPenSize(OutLineLevel());
			view->SetHighColor(0, 0, 0);
			view->StrokeShape(fShapes[i]);
		} else {
			view->SetHighColor(0, 0, 0);
			view->SetDrawingMode(fDrawingMode);
			view->DrawChar(fString[i], BPoint(xCoordArray[i], yCoordArray[i]));
		}

		if (BoundingBoxes() && !OutLineLevel()) {
			if (i % 2)
				view->SetHighColor(0, 255, 0);
			else
				view->SetHighColor(255, 0, 0);
			view->SetDrawingMode(B_OP_COPY);
			view->StrokeRect(boundBoxes[i]);
		}

		// add the bounding to the region.
		fBoxRegion.Include(boundBoxes[i]);

		xCoord += (escapementArray[i] /*+ escapeDeltas[i].nonspace + escapeDeltas[i].space*/)
			* FontSize() + Spacing();
		//printf("xCoord %f\n", xCoord);
	}
}
示例#14
0
文件: composite.c 项目: jalkanen/ppt
BOOL GimmeWindow(FRAME *frame, FRAME *with, struct PPTBase *PPTBase )
{
    strcpy(wtitle,MYNAME": ");
    strcat(wtitle, frame->name);

    Win = WindowObject,
        WINDOW_Screen,      PPTBase->g->maindisp->scr,
        WINDOW_Title,       wtitle,
        v.bounds.Top != ~0 ? TAG_IGNORE : TAG_SKIP, 1,
        WINDOW_Bounds,      &v.bounds,
        WINDOW_Position,    POS_CENTERSCREEN,
        WINDOW_Font,        PPTBase->g->userprefs->mainfont,
        WINDOW_MasterGroup,
            VGroupObject, Spacing(4), HOffset(4), VOffset(4),
                StartMember,
                    InfoTxt = InfoObject,
                        INFO_TextFormat, ISEQ_C"Please position the source\n"
                                               "over the destination...",
                        INFO_MinLines, 3,
                    EndObject,
                EndMember,
                StartMember,
                    InfoObject,
                        Label("Destination:"),
                        ButtonFrame,
                        FRM_Flags, FRF_RECESSED,
                        INFO_TextFormat, frame->name,
                    EndObject,
                EndMember,
                StartMember,
                    InfoObject,
                        Label("Source:"),
                        ButtonFrame,
                        FRM_Flags, FRF_RECESSED,
                        INFO_TextFormat, with ? with->name : "None",
                    EndObject,
                EndMember,
                StartMember,
                    Method = CycleObject, GA_ID, GID_METHOD,
                        Label("Method:"),
                        Place(PLACE_LEFT),
                        ButtonFrame,
                        CYC_Active, v.method,
                        CYC_Labels, method_labels,
                        CYC_Popup,  TRUE,
                    EndObject,
                EndMember,
                StartMember,
                    HGroupObject,
                        StartMember,
                            Ratio = SliderObject, GA_ID, GID_RATIO,
                                Label("Ratio:"),
                                Place(PLACE_LEFT),
                                SLIDER_Min,   0,
                                SLIDER_Max,   255,
                                SLIDER_Level, v.ratio,
                                PGA_Freedom,  FREEHORIZ,
                            EndObject,
                        EndMember,
                        StartMember,
                            RatioI = IndicatorObject,
                                INDIC_Min, 0,
                                INDIC_Max, 255,
                                INDIC_Level, v.ratio,
                                INDIC_Justification, IDJ_RIGHT,
                                INDIC_FormatString, "%3ld",
                            EndObject, FixMinWidth,
                        EndMember,
                    EndObject,
                EndMember,
                StartMember,
                    Tile = CheckBoxObject,
                        GA_ID, GID_TILE,
                        Label("Tile source?"), Place(PLACE_LEFT),
                        GA_Selected, v.tile,
                    EndObject, FixMinSize,
                EndMember,
                StartMember,
                    HGroupObject, Spacing(6),
                        StartMember,
                            OKButton = ButtonObject,
                                GA_ID, GID_OK,
                                Label("OK"),
                                GA_Disabled, FALSE,
                            EndObject,
                        EndMember,
                        StartMember,
                            Button("Cancel", GID_CANCEL),
                        EndMember,
                    EndObject,
                EndMember,
            EndObject,
        EndObject;

    if(Win) {

        AddMap( Ratio, RatioI, sl2ind );
        AddCondit( Method, Ratio,  CYC_Active, Mix, GA_Disabled, FALSE, GA_Disabled, TRUE );
        AddCondit( Method, RatioI, CYC_Active, Mix, GA_Disabled, FALSE, GA_Disabled, TRUE );

        if( v.method != Mix ) {
            SetGadgetAttrs( (struct Gadget *)Ratio, NULL, NULL, GA_Disabled, TRUE, TAG_DONE );
            SetGadgetAttrs( (struct Gadget *)RatioI, NULL, NULL, GA_Disabled, TRUE, TAG_DONE );
        }

        win = WindowOpen(Win);
        if(!win) {
            SetErrorCode(frame,PERR_WINDOWOPEN);
            DisposeObject(Win);
            return FALSE;
        }
    } else
        return FALSE;

    return TRUE;
}