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()); }); }
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; } }
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); } }
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); }
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; }
// 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; } } } }
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()); } }
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; } } }
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; }
/* 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); }
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); } }
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; }