int statusbar_create(video_canvas_t *canvas) { int i; canvas->os->font = OpenDiskFont((struct TextAttr *)&led_font_attr); if (canvas->os->font) { SetFont(canvas->os->window->RPort, canvas->os->font); } /* else we use system default font */ for (i=0; i<b_num; i++) { #ifndef AMIGAOS4 canvas->os->pens[i] = ObtainBestPen(canvas->os->window->WScreen->ViewPort.ColorMap, palette[i].red * 0x01010101, palette[i].green * 0x01010101, palette[i].blue * 0x01010101, TAG_DONE); #else canvas->os->pens[i] = ObtainBestPen(canvas->os->window->WScreen->ViewPort.ColorMap, palette[i].red * 0x01010101, palette[i].green * 0x01010101, palette[i].blue * 0x01010101); #endif } #define MAXSTR "00: 00.0" canvas->os->disk_width = TextLength(canvas->os->window->RPort, MAXSTR, strlen(MAXSTR)) + 14 + 7; #undef MAXSTR #define MAXSTR "000" canvas->os->tape_width = TextLength(canvas->os->window->RPort, MAXSTR, strlen(MAXSTR)) + 28 + 7 ; #undef MAXSTR canvas->os->has_statusbar = 1; statusbar_refresh(REFRESH_ALL); return 0; }
IPTR Levelmeter__MUIM_Setup(struct IClass *cl, Object *obj, struct MUIP_Setup *msg) { struct Levelmeter_DATA *data = INST_DATA(cl, obj); //struct RastPort rp; IPTR retval; retval = DoSuperMethodA(cl, obj, (Msg)msg); if (retval) { #if 0 InitRastPort(&rp); SetFont(&rp,_font(obj)); DeinitRastPort(&rp); #endif data->levelbgpen = ObtainBestPen(_screen(obj)->ViewPort.ColorMap, 0x4b4b4b4b, 0x39393939, 0x93939393, OBP_FailIfBad, FALSE, OBP_Precision, PRECISION_GUI, TAG_DONE); } return retval; }
// Get border pen void GetPatternBorder(PatternData *pattern,struct Screen *screen,ULONG border_col) { // Do nothing under 37 if (((struct Library *)GfxBase)->lib_Version<39) return; // Free existing border pen if (pattern->border_pen!=0) { if (pattern->border_pen==-1) pattern->border_pen=0; ReleasePen(screen->ViewPort.ColorMap,pattern->border_pen); pattern->border_pen=0; } // Want a border pen? if (border_col&ENVBF_USE_COLOUR) { // Try to allocate pen if ((pattern->border_pen= ObtainBestPen( screen->ViewPort.ColorMap, ENVBF_COL_R_GET(border_col)<<24, ENVBF_COL_G_GET(border_col)<<24, ENVBF_COL_B_GET(border_col)<<24, OBP_Precision,PRECISION_IMAGE, TAG_END))==0) pattern->border_pen=-1; else if (pattern->border_pen==-1) pattern->border_pen=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); }