From 0df48ad2d876409c5beeae2e21933a728ea76c33 Mon Sep 17 00:00:00 2001 From: Good Guy Date: Sun, 20 Oct 2019 16:57:55 -0600 Subject: [PATCH] add BC_SCALE env var for hi def monitors, cleanup theme data --- cinelerra-5.1/cinelerra/aboutprefs.C | 19 +- cinelerra-5.1/cinelerra/adeviceprefs.C | 69 +- cinelerra-5.1/cinelerra/apanel.C | 15 +- cinelerra-5.1/cinelerra/apatchgui.C | 17 +- cinelerra-5.1/cinelerra/appearanceprefs.C | 109 +- cinelerra-5.1/cinelerra/assetedit.C | 106 +- cinelerra-5.1/cinelerra/assetpopup.C | 46 +- cinelerra-5.1/cinelerra/assetremove.C | 10 +- cinelerra-5.1/cinelerra/auto.C | 8 +- cinelerra-5.1/cinelerra/avc1394transport.C | 4 +- cinelerra-5.1/cinelerra/awindowgui.C | 51 +- cinelerra-5.1/cinelerra/batchrender.C | 45 +- cinelerra-5.1/cinelerra/bdcreate.C | 49 +- cinelerra-5.1/cinelerra/binfolder.C | 80 +- cinelerra-5.1/cinelerra/bitspopup.C | 27 +- cinelerra-5.1/cinelerra/canvas.C | 15 +- cinelerra-5.1/cinelerra/channeledit.C | 227 ++-- cinelerra-5.1/cinelerra/channelinfo.C | 144 +- cinelerra-5.1/cinelerra/clipedit.C | 18 +- cinelerra-5.1/cinelerra/colorpicker.C | 137 +- cinelerra-5.1/cinelerra/commercials.C | 24 +- cinelerra-5.1/cinelerra/confirmquit.C | 17 +- cinelerra-5.1/cinelerra/confirmsave.C | 38 +- cinelerra-5.1/cinelerra/cpanel.C | 8 +- cinelerra-5.1/cinelerra/cropvideo.C | 8 +- cinelerra-5.1/cinelerra/cwindowgui.C | 62 +- cinelerra-5.1/cinelerra/cwindowtool.C | 275 ++-- cinelerra-5.1/cinelerra/dbwindow.C | 76 +- cinelerra-5.1/cinelerra/deleteallindexes.C | 9 +- cinelerra-5.1/cinelerra/dvdcreate.C | 46 +- cinelerra-5.1/cinelerra/edit.C | 4 +- cinelerra-5.1/cinelerra/editlength.C | 72 +- cinelerra-5.1/cinelerra/edlsession.C | 7 +- cinelerra-5.1/cinelerra/exportedl.C | 44 +- cinelerra-5.1/cinelerra/featheredits.C | 15 +- cinelerra-5.1/cinelerra/fileac3.C | 36 +- cinelerra-5.1/cinelerra/filedv.C | 88 +- cinelerra-5.1/cinelerra/fileexr.C | 18 +- cinelerra-5.1/cinelerra/fileffmpeg.C | 94 +- cinelerra-5.1/cinelerra/fileflac.C | 38 +- cinelerra-5.1/cinelerra/fileformat.C | 27 +- cinelerra-5.1/cinelerra/filejpeg.C | 11 +- cinelerra-5.1/cinelerra/filejpeglist.C | 8 +- cinelerra-5.1/cinelerra/filempeg.C | 204 +-- cinelerra-5.1/cinelerra/filepng.C | 27 +- cinelerra-5.1/cinelerra/fileppm.C | 5 +- cinelerra-5.1/cinelerra/filesndfile.C | 23 +- cinelerra-5.1/cinelerra/filetga.C | 210 +-- cinelerra-5.1/cinelerra/filetiff.C | 49 +- cinelerra-5.1/cinelerra/formatpopup.C | 4 +- cinelerra-5.1/cinelerra/formatpresets.C | 9 +- cinelerra-5.1/cinelerra/formattools.C | 53 +- cinelerra-5.1/cinelerra/formatwindow.C | 54 +- cinelerra-5.1/cinelerra/gwindowgui.C | 33 +- cinelerra-5.1/cinelerra/interfaceprefs.C | 130 +- cinelerra-5.1/cinelerra/keyframegui.C | 2 +- cinelerra-5.1/cinelerra/labeledit.C | 11 +- cinelerra-5.1/cinelerra/levelwindowgui.C | 12 +- cinelerra-5.1/cinelerra/maincursor.C | 7 +- cinelerra-5.1/cinelerra/mainerror.C | 30 +- cinelerra-5.1/cinelerra/mainmenu.C | 14 +- cinelerra-5.1/cinelerra/mainsession.C | 52 +- cinelerra-5.1/cinelerra/manualgoto.C | 23 +- .../cinelerra/menuattachtransition.C | 34 +- cinelerra-5.1/cinelerra/menueffects.C | 41 +- cinelerra-5.1/cinelerra/mixersalign.C | 64 +- cinelerra-5.1/cinelerra/mtimebar.C | 13 +- cinelerra-5.1/cinelerra/mwindow.C | 4 +- cinelerra-5.1/cinelerra/mwindowgui.C | 29 +- cinelerra-5.1/cinelerra/mwindowmove.C | 6 +- cinelerra-5.1/cinelerra/new.C | 148 +- cinelerra-5.1/cinelerra/performanceprefs.C | 127 +- cinelerra-5.1/cinelerra/playbackprefs.C | 77 +- cinelerra-5.1/cinelerra/pluginaclientlad.C | 32 +- cinelerra-5.1/cinelerra/pluginclient.C | 12 +- cinelerra-5.1/cinelerra/plugindialog.C | 103 +- cinelerra-5.1/cinelerra/pluginfclient.C | 58 +- cinelerra-5.1/cinelerra/pluginlv2gui.C | 50 +- cinelerra-5.1/cinelerra/pluginprefs.C | 40 +- cinelerra-5.1/cinelerra/preferencesthread.C | 73 +- cinelerra-5.1/cinelerra/presetsgui.C.sav | 9 +- cinelerra-5.1/cinelerra/presetsgui.C.sav1 | 59 +- cinelerra-5.1/cinelerra/probeprefs.C | 14 +- cinelerra-5.1/cinelerra/proxy.C | 10 +- cinelerra-5.1/cinelerra/question.C | 15 +- cinelerra-5.1/cinelerra/recconfirmdelete.C | 10 +- cinelerra-5.1/cinelerra/recordgui.C | 85 +- cinelerra-5.1/cinelerra/recordmonitor.C | 16 +- cinelerra-5.1/cinelerra/recordprefs.C | 86 +- cinelerra-5.1/cinelerra/recordtransport.C | 4 +- cinelerra-5.1/cinelerra/recordwindow.C | 16 +- cinelerra-5.1/cinelerra/recordwindow.h | 4 +- cinelerra-5.1/cinelerra/reindex.C | 8 +- cinelerra-5.1/cinelerra/remotecontrol.C | 5 +- cinelerra-5.1/cinelerra/render.C | 24 +- cinelerra-5.1/cinelerra/renderfarm.C | 8 +- cinelerra-5.1/cinelerra/renderfarmclient.C | 8 +- cinelerra-5.1/cinelerra/renderprofiles.C | 53 +- cinelerra-5.1/cinelerra/resizetrackthread.C | 39 +- cinelerra-5.1/cinelerra/resourcepixmap.C | 8 +- cinelerra-5.1/cinelerra/savefile.C | 40 +- cinelerra-5.1/cinelerra/scale.C | 150 +-- cinelerra-5.1/cinelerra/scopewindow.C | 9 +- cinelerra-5.1/cinelerra/scopewindow.h | 4 +- cinelerra-5.1/cinelerra/setformat.C | 88 +- cinelerra-5.1/cinelerra/shbtnprefs.C | 36 +- cinelerra-5.1/cinelerra/splashgui.C | 4 +- cinelerra-5.1/cinelerra/statusbar.C | 16 +- cinelerra-5.1/cinelerra/swindow.C | 89 +- cinelerra-5.1/cinelerra/swindow.h | 2 +- cinelerra-5.1/cinelerra/testwindow.C | 2 +- cinelerra-5.1/cinelerra/theme.C | 186 ++- cinelerra-5.1/cinelerra/timebar.C | 18 +- cinelerra-5.1/cinelerra/tipwindow.C | 17 +- cinelerra-5.1/cinelerra/trackcanvas.C | 69 +- cinelerra-5.1/cinelerra/trackcanvas.inc | 4 +- cinelerra-5.1/cinelerra/trackpopup.C | 40 +- cinelerra-5.1/cinelerra/transitionpopup.C | 17 +- cinelerra-5.1/cinelerra/vdeviceprefs.C | 85 +- cinelerra-5.1/cinelerra/videowindowgui.C | 12 +- cinelerra-5.1/cinelerra/vpatchgui.C | 12 +- cinelerra-5.1/cinelerra/vwindowgui.C | 15 +- cinelerra-5.1/cinelerra/wwindow.C | 13 +- cinelerra-5.1/cinelerra/zoombar.C | 65 +- cinelerra-5.1/cinelerra/zwindowgui.C | 8 +- cinelerra-5.1/guicast/bcbutton.C | 52 +- cinelerra-5.1/guicast/bcdelete.C | 57 +- cinelerra-5.1/guicast/bcdisplay.C | 53 +- cinelerra-5.1/guicast/bcdisplayinfo.C | 15 + cinelerra-5.1/guicast/bcdisplayinfo.h | 1 + cinelerra-5.1/guicast/bcfilebox.C | 101 +- cinelerra-5.1/guicast/bclistbox.C | 53 +- cinelerra-5.1/guicast/bclistbox.h | 10 +- cinelerra-5.1/guicast/bclistbox.inc | 8 +- cinelerra-5.1/guicast/bcmenu.C | 8 +- cinelerra-5.1/guicast/bcmenubar.C | 6 +- cinelerra-5.1/guicast/bcmenuitem.C | 28 +- cinelerra-5.1/guicast/bcmenupopup.C | 34 +- cinelerra-5.1/guicast/bcmeter.C | 34 +- cinelerra-5.1/guicast/bcnewfolder.C | 30 +- cinelerra-5.1/guicast/bcpan.C | 20 +- cinelerra-5.1/guicast/bcpixmap.C | 165 +-- cinelerra-5.1/guicast/bcpopupmenu.C | 10 +- cinelerra-5.1/guicast/bcpot.C | 65 +- cinelerra-5.1/guicast/bcprogressbox.C | 20 +- cinelerra-5.1/guicast/bcrename.C | 28 +- cinelerra-5.1/guicast/bcresources.C | 58 +- cinelerra-5.1/guicast/bcresources.h | 1 + cinelerra-5.1/guicast/bcscrollbar.C | 4 +- cinelerra-5.1/guicast/bcslider.C | 104 +- cinelerra-5.1/guicast/bcsubwindow.C | 10 +- cinelerra-5.1/guicast/bcsynchronous.C | 6 - cinelerra-5.1/guicast/bctextbox.C | 8 +- cinelerra-5.1/guicast/bctitle.C | 2 +- cinelerra-5.1/guicast/bctoggle.C | 2 +- cinelerra-5.1/guicast/bctumble.C | 18 +- cinelerra-5.1/guicast/bcwindow.C | 1 + cinelerra-5.1/guicast/bcwindow.h | 1 - cinelerra-5.1/guicast/bcwindowbase.C | 66 +- cinelerra-5.1/guicast/bcwindowbase.h | 4 +- cinelerra-5.1/guicast/bcwindowdraw.C | 463 ++----- cinelerra-5.1/guicast/errorbox.C | 16 +- cinelerra-5.1/guicast/rotateframe.C | 151 +-- cinelerra-5.1/guicast/test.C | 22 +- cinelerra-5.1/guicast/test2.C | 11 +- cinelerra-5.1/guicast/test3.C | 8 +- cinelerra-5.1/guicast/vframe.C | 5 - cinelerra-5.1/guicast/vframe3d.C | 9 - cinelerra-5.1/opencv_build | 2 + cinelerra-5.1/plugins/1080to480/1080to480.C | 6 +- cinelerra-5.1/plugins/1080to540/1080to540.C | 12 +- cinelerra-5.1/plugins/720to480/720to480.C | 21 +- cinelerra-5.1/plugins/C41/c41.C | 122 +- cinelerra-5.1/plugins/aging/agingwindow.C | 20 +- cinelerra-5.1/plugins/audioscope/audioscope.C | 12 +- cinelerra-5.1/plugins/bandslide/bandslide.C | 22 +- cinelerra-5.1/plugins/bandwipe/bandwipe.C | 23 +- .../plugins/bluebanana/bluebananawindow.C | 2 +- cinelerra-5.1/plugins/blur/blurwindow.C | 34 +- .../plugins/blurzoom/blurzoomwindow.C | 8 +- .../plugins/brightness/brightnesswindow.C | 22 +- cinelerra-5.1/plugins/burn/burnwindow.C | 10 +- cinelerra-5.1/plugins/cdripper/cdripwindow.C | 48 +- cinelerra-5.1/plugins/chromakey/chromakey.C | 38 +- .../plugins/chromakeyhsv/chromakey.C | 60 +- .../plugins/color3way/color3waywindow.C | 4 +- .../plugins/colorbalance/colorbalancewindow.C | 38 +- cinelerra-5.1/plugins/compressor/compressor.C | 76 +- cinelerra-5.1/plugins/crikey/crikeywindow.C | 42 +- cinelerra-5.1/plugins/crop/cropwin.C | 104 +- cinelerra-5.1/plugins/decimate/decimate.C | 30 +- .../plugins/deinterlace-cv/deinterwindow-cv.C | 44 +- .../plugins/deinterlace/deinterlace.C | 2 +- .../plugins/deinterlace/deinterwindow.C | 30 +- cinelerra-5.1/plugins/delayaudio/delayaudio.C | 10 +- cinelerra-5.1/plugins/delayvideo/delayvideo.C | 16 +- cinelerra-5.1/plugins/denoise/denoise.C | 8 +- cinelerra-5.1/plugins/denoisefft/denoisefft.C | 24 +- .../plugins/denoisemjpeg/denoisemjpeg.C | 6 +- .../denoiseseltempavg/seltempavgwindow.C | 8 +- .../plugins/denoisevideo/denoisevideo.C | 38 +- cinelerra-5.1/plugins/descratch/descratch.C | 84 +- cinelerra-5.1/plugins/despike/despikewindow.C | 30 +- cinelerra-5.1/plugins/diffkey/diffkey.C | 28 +- cinelerra-5.1/plugins/dot/dotwindow.C | 10 +- cinelerra-5.1/plugins/downsample/downsample.C | 38 +- cinelerra-5.1/plugins/echo/echo.C | 18 +- cinelerra-5.1/plugins/echocancel/echocancel.C | 10 +- cinelerra-5.1/plugins/edge/edgewindow.C | 10 +- cinelerra-5.1/plugins/fieldframe/fieldframe.C | 18 +- cinelerra-5.1/plugins/findobj/findobjwindow.C | 158 +-- cinelerra-5.1/plugins/flip/flipwindow.C | 6 +- cinelerra-5.1/plugins/flowobj/flowobjwindow.C | 4 +- cinelerra-5.1/plugins/framefield/framefield.C | 16 +- cinelerra-5.1/plugins/freeverb/freeverb.C | 12 +- .../plugins/freezeframe/freezeframe.C | 6 +- .../plugins/gaborobj/gaborobjwindow.C | 4 +- cinelerra-5.1/plugins/gain/gainwindow.C | 18 +- cinelerra-5.1/plugins/gamma/gammawindow.C | 46 +- cinelerra-5.1/plugins/gradient/gradient.C | 30 +- cinelerra-5.1/plugins/graphic/graphic.C | 24 +- .../greycstoration/greycstorationwindow.C | 28 +- cinelerra-5.1/plugins/histeq/histeq.C | 22 +- .../plugins/histogram/histogramwindow.C | 14 +- .../histogram_bezier/bistogramwindow.C | 62 +- cinelerra-5.1/plugins/holo/holowindow.C | 10 +- .../plugins/huesaturation/huesaturation.C | 22 +- .../plugins/interpolate/interpolate.C | 24 +- .../interpolatevideo/interpolatewindow.C | 20 +- cinelerra-5.1/plugins/invertvideo/invert.C | 16 +- .../plugins/invertvideo/invertwindow.C | 6 +- cinelerra-5.1/plugins/irissquare/irissquare.C | 16 +- cinelerra-5.1/plugins/ivtc/ivtcwindow.C | 32 +- cinelerra-5.1/plugins/lens/lens.C | 76 +- cinelerra-5.1/plugins/level/leveleffect.C | 24 +- cinelerra-5.1/plugins/linearblur/linearblur.C | 42 +- cinelerra-5.1/plugins/liveaudio/liveaudio.C | 10 +- cinelerra-5.1/plugins/livevideo/livevideo.C | 20 +- cinelerra-5.1/plugins/loopaudio/loopaudio.C | 16 +- cinelerra-5.1/plugins/loopvideo/loopvideo.C | 16 +- .../plugins/mandelcuda/mandelbrotwindow.C | 4 +- .../plugins/motion-cv/motionwindow-cv.C | 104 +- .../plugins/motion-hv/motionwindow-hv.C | 130 +- cinelerra-5.1/plugins/motion/motionwindow.C | 118 +- .../plugins/motion2point/motionwindow.C | 112 +- .../plugins/motion51/motionwindow51.C | 52 +- cinelerra-5.1/plugins/motionblur/motionblur.C | 20 +- cinelerra-5.1/plugins/moveobj/moveobjwindow.C | 4 +- cinelerra-5.1/plugins/nbodycuda/nbodywindow.C | 12 +- .../plugins/normalize/normalizewindow.C | 22 +- cinelerra-5.1/plugins/oilpainting/oil.C | 22 +- cinelerra-5.1/plugins/oilpainting/oilwindow.C | 12 +- cinelerra-5.1/plugins/overlay/overlay.C | 32 +- .../plugins/overlayaudio/overlayaudio.C | 22 +- cinelerra-5.1/plugins/parametric/parametric.C | 58 +- .../plugins/perspective/perspective.C | 57 +- cinelerra-5.1/plugins/photoscale/photoscale.C | 18 +- cinelerra-5.1/plugins/piano/piano.C | 84 +- cinelerra-5.1/plugins/pitch/pitch.C | 12 +- cinelerra-5.1/plugins/polar/polar.C | 28 +- cinelerra-5.1/plugins/polar/polarwindow.C | 20 +- .../plugins/puzzleobj/puzzleobjwindow.C | 16 +- cinelerra-5.1/plugins/radialblur/radialblur.C | 56 +- cinelerra-5.1/plugins/reframe/reframe.C | 14 +- cinelerra-5.1/plugins/reframert/reframert.C | 8 +- cinelerra-5.1/plugins/removegaps/removegaps.C | 10 +- cinelerra-5.1/plugins/reroute/reroute.C | 14 +- cinelerra-5.1/plugins/resample/resample.C | 20 +- cinelerra-5.1/plugins/resamplert/resamplert.C | 8 +- cinelerra-5.1/plugins/reverb/reverbwindow.C | 44 +- .../plugins/reverseaudio/reverseaudio.C | 4 +- .../plugins/reversevideo/reversevideo.C | 10 +- cinelerra-5.1/plugins/rgb601/rgb601window.C | 8 +- cinelerra-5.1/plugins/rgbshift/rgbshift.C | 24 +- cinelerra-5.1/plugins/rotate/rotate.C | 36 +- cinelerra-5.1/plugins/rumbler/rumbler.C | 20 +- cinelerra-5.1/plugins/scale/scalewin.C | 28 +- .../plugins/scaleratio/scaleratiowin.C | 58 +- cinelerra-5.1/plugins/shapewipe/shapewipe.C | 14 +- cinelerra-5.1/plugins/sharpen/sharpenwindow.C | 28 +- .../plugins/shiftinterlace/shiftinterlace.C | 32 +- .../plugins/sketcher/sketcherwindow.C | 80 +- cinelerra-5.1/plugins/slide/slide.C | 24 +- .../plugins/spectrogram/spectrogram.C | 44 +- cinelerra-5.1/plugins/spherecam/spherecam.C | 10 +- .../plugins/stylizeobj/stylizeobjwindow.C | 29 +- cinelerra-5.1/plugins/svg/svgwin.C | 30 +- .../plugins/swapchannels/swapchannels.C | 26 +- cinelerra-5.1/plugins/swapframes/swapframes.C | 22 +- .../plugins/synthesizer/synthesizer.C | 60 +- .../plugins/theme_blond/blondtheme.C | 144 +- .../plugins/theme_blond/mask_all_linear.png | Bin 422 -> 0 bytes .../plugins/theme_blond/mask_all_smooth.png | Bin 699 -> 0 bytes .../plugins/theme_blond/mask_button_dn.png | Bin 313 -> 0 bytes .../plugins/theme_blond/mask_button_hi.png | Bin 503 -> 0 bytes .../plugins/theme_blond/mask_button_up.png | Bin 167 -> 0 bytes .../plugins/theme_blond/mask_crv_linear.png | Bin 462 -> 0 bytes .../plugins/theme_blond/mask_crv_smooth.png | Bin 633 -> 0 bytes .../plugins/theme_blond/mask_pnt_linear.png | Bin 530 -> 0 bytes .../plugins/theme_blond/mask_pnt_smooth.png | Bin 546 -> 0 bytes .../plugins/theme_blond/mask_prst_crc.png | Bin 583 -> 0 bytes .../plugins/theme_blond/mask_prst_load.png | Bin 301 -> 0 bytes .../plugins/theme_blond/mask_prst_ovl.png | Bin 513 -> 0 bytes .../plugins/theme_blond/mask_prst_save.png | Bin 317 -> 0 bytes .../plugins/theme_blond/mask_prst_sqr.png | Bin 198 -> 0 bytes .../plugins/theme_blond/mask_prst_tri.png | Bin 492 -> 0 bytes .../plugins/theme_blond/mask_prst_trsh.png | Bin 239 -> 0 bytes .../plugins/theme_blond/mask_pstn_cen.png | Bin 399 -> 0 bytes .../plugins/theme_blond/mask_pstn_nrm.png | Bin 209 -> 0 bytes .../plugins/theme_blond/mask_scale_chkd.png | Bin 478 -> 0 bytes .../plugins/theme_blond/mask_scale_chkdhi.png | Bin 480 -> 0 bytes .../plugins/theme_blond/mask_scale_up.png | Bin 167 -> 0 bytes .../plugins/theme_blond/mask_scale_uphi.png | Bin 503 -> 0 bytes .../plugins/theme_blond/mask_scale_x.png | Bin 394 -> 0 bytes .../plugins/theme_blond/mask_scale_xdown.png | Bin 609 -> 0 bytes .../plugins/theme_blond/mask_scale_xy.png | Bin 714 -> 0 bytes .../plugins/theme_blond/mask_scale_xydown.png | Bin 1035 -> 0 bytes .../plugins/theme_blond/mask_scale_y.png | Bin 386 -> 0 bytes .../plugins/theme_blond/mask_scale_ydown.png | Bin 653 -> 0 bytes cinelerra-5.1/plugins/theme_blond/unclear.png | Bin 568 -> 0 bytes .../plugins/theme_blond/unclear_dn.png | Bin 313 -> 0 bytes .../plugins/theme_blond/unclear_hi.png | Bin 503 -> 0 bytes .../plugins/theme_blond/unclear_up.png | Bin 167 -> 0 bytes .../plugins/theme_blond_cv/blondcvtheme.C | 344 ++--- .../theme_blond_cv/blondcvtheme.C.orig | 1199 ----------------- .../plugins/theme_blond_cv/buttons.xcf.bz2 | Bin 3300 -> 0 bytes .../plugins/theme_blond_cv/cwindow.xcf.bz2 | Bin 24451 -> 0 bytes .../plugins/theme_blond_cv/cwindow2.xcf.bz2 | Bin 20676 -> 0 bytes .../plugins/theme_blond_cv/hscroll.xcf.bz2 | Bin 205823 -> 0 bytes .../plugins/theme_blond_cv/hscroll2.xcf.bz2 | Bin 6283 -> 0 bytes .../theme_blond_cv/mask_all_linear.png | Bin 422 -> 0 bytes .../theme_blond_cv/mask_all_smooth.png | Bin 699 -> 0 bytes .../plugins/theme_blond_cv/mask_button_dn.png | Bin 864 -> 0 bytes .../plugins/theme_blond_cv/mask_button_hi.png | Bin 811 -> 0 bytes .../plugins/theme_blond_cv/mask_button_up.png | Bin 167 -> 0 bytes .../theme_blond_cv/mask_crv_linear.png | Bin 462 -> 0 bytes .../theme_blond_cv/mask_crv_smooth.png | Bin 633 -> 0 bytes .../theme_blond_cv/mask_pnt_linear.png | Bin 530 -> 0 bytes .../theme_blond_cv/mask_pnt_smooth.png | Bin 546 -> 0 bytes .../plugins/theme_blond_cv/mask_prst_crc.png | Bin 583 -> 0 bytes .../plugins/theme_blond_cv/mask_prst_load.png | Bin 301 -> 0 bytes .../plugins/theme_blond_cv/mask_prst_ovl.png | Bin 513 -> 0 bytes .../plugins/theme_blond_cv/mask_prst_save.png | Bin 317 -> 0 bytes .../plugins/theme_blond_cv/mask_prst_sqr.png | Bin 198 -> 0 bytes .../plugins/theme_blond_cv/mask_prst_tri.png | Bin 492 -> 0 bytes .../plugins/theme_blond_cv/mask_prst_trsh.png | Bin 239 -> 0 bytes .../plugins/theme_blond_cv/mask_pstn_cen.png | Bin 399 -> 0 bytes .../plugins/theme_blond_cv/mask_pstn_nrm.png | Bin 209 -> 0 bytes .../theme_blond_cv/mask_scale_chkd.png | Bin 941 -> 0 bytes .../theme_blond_cv/mask_scale_chkdhi.png | Bin 915 -> 0 bytes .../plugins/theme_blond_cv/mask_scale_up.png | Bin 167 -> 0 bytes .../theme_blond_cv/mask_scale_uphi.png | Bin 812 -> 0 bytes .../plugins/theme_blond_cv/mask_scale_x.png | Bin 394 -> 0 bytes .../theme_blond_cv/mask_scale_xdown.png | Bin 1081 -> 0 bytes .../plugins/theme_blond_cv/mask_scale_xy.png | Bin 714 -> 0 bytes .../theme_blond_cv/mask_scale_xydown.png | Bin 1167 -> 0 bytes .../plugins/theme_blond_cv/mask_scale_y.png | Bin 386 -> 0 bytes .../theme_blond_cv/mask_scale_ydown.png | Bin 1065 -> 0 bytes .../plugins/theme_blond_cv/mwindow.xcf.bz2 | Bin 22706 -> 0 bytes .../plugins/theme_blond_cv/mwindow2.xcf.bz2 | Bin 20535 -> 0 bytes .../theme_blond_cv/preferencesbutton.xcf.bz2 | Bin 4378 -> 0 bytes .../plugins/theme_blond_cv/recordgui.xcf.bz2 | Bin 65455 -> 0 bytes .../theme_blond_cv/recordmonitor.xcf.bz2 | Bin 18474 -> 0 bytes .../plugins/theme_blond_cv/scrollbar.xcf.bz2 | Bin 9684 -> 0 bytes .../plugins/theme_blond_cv/slider_bg.xcf.bz2 | Bin 542 -> 0 bytes .../theme_blond_cv/slider_button.xcf.bz2 | Bin 2116 -> 0 bytes .../theme_blond_cv/statusbar_cancel.xcf.bz2 | Bin 3409 -> 0 bytes .../plugins/theme_blond_cv/tumbler.xcf.bz2 | Bin 6898 -> 0 bytes .../plugins/theme_blond_cv/unclear.png | Bin 568 -> 0 bytes .../plugins/theme_blond_cv/unclear_dn.png | Bin 864 -> 0 bytes .../plugins/theme_blond_cv/unclear_hi.png | Bin 811 -> 0 bytes .../plugins/theme_blond_cv/unclear_up.png | Bin 167 -> 0 bytes .../plugins/theme_blond_cv/vscrollbar.xcf.bz2 | Bin 8596 -> 0 bytes .../plugins/theme_blond_cv/vwindow.xcf.bz2 | Bin 35531 -> 0 bytes cinelerra-5.1/plugins/theme_blue/bluetheme.C | 148 +- .../plugins/theme_blue/mask_all_linear.png | Bin 403 -> 0 bytes .../plugins/theme_blue/mask_all_smooth.png | Bin 651 -> 0 bytes .../plugins/theme_blue/mask_button_dn.png | Bin 316 -> 0 bytes .../plugins/theme_blue/mask_button_hi.png | Bin 496 -> 0 bytes .../plugins/theme_blue/mask_button_up.png | Bin 167 -> 0 bytes .../plugins/theme_blue/mask_crv_linear.png | Bin 450 -> 0 bytes .../plugins/theme_blue/mask_crv_smooth.png | Bin 589 -> 0 bytes .../plugins/theme_blue/mask_pnt_linear.png | Bin 499 -> 0 bytes .../plugins/theme_blue/mask_pnt_smooth.png | Bin 511 -> 0 bytes .../plugins/theme_blue/mask_prst_crc.png | Bin 569 -> 0 bytes .../plugins/theme_blue/mask_prst_load.png | Bin 302 -> 0 bytes .../plugins/theme_blue/mask_prst_ovl.png | Bin 485 -> 0 bytes .../plugins/theme_blue/mask_prst_save.png | Bin 317 -> 0 bytes .../plugins/theme_blue/mask_prst_sqr.png | Bin 198 -> 0 bytes .../plugins/theme_blue/mask_prst_tri.png | Bin 445 -> 0 bytes .../plugins/theme_blue/mask_prst_trsh.png | Bin 238 -> 0 bytes .../plugins/theme_blue/mask_pstn_cen.png | Bin 399 -> 0 bytes .../plugins/theme_blue/mask_pstn_nrm.png | Bin 209 -> 0 bytes .../plugins/theme_blue/mask_scale_chkd.png | Bin 444 -> 0 bytes .../plugins/theme_blue/mask_scale_chkdhi.png | Bin 493 -> 0 bytes .../plugins/theme_blue/mask_scale_up.png | Bin 167 -> 0 bytes .../plugins/theme_blue/mask_scale_uphi.png | Bin 496 -> 0 bytes .../plugins/theme_blue/mask_scale_x.png | Bin 371 -> 0 bytes .../plugins/theme_blue/mask_scale_xdown.png | Bin 618 -> 0 bytes .../plugins/theme_blue/mask_scale_xy.png | Bin 662 -> 0 bytes .../plugins/theme_blue/mask_scale_xydown.png | Bin 1024 -> 0 bytes .../plugins/theme_blue/mask_scale_y.png | Bin 376 -> 0 bytes .../plugins/theme_blue/mask_scale_ydown.png | Bin 662 -> 0 bytes cinelerra-5.1/plugins/theme_blue/unclear.png | Bin 530 -> 0 bytes .../plugins/theme_blue/unclear_dn.png | Bin 316 -> 0 bytes .../plugins/theme_blue/unclear_hi.png | Bin 496 -> 0 bytes .../plugins/theme_blue/unclear_up.png | Bin 167 -> 0 bytes .../plugins/theme_blue_dot/bluedottheme.C | 292 ++-- .../theme_blue_dot/mask_all_linear.png | Bin 406 -> 0 bytes .../theme_blue_dot/mask_all_smooth.png | Bin 690 -> 0 bytes .../plugins/theme_blue_dot/mask_button_dn.png | Bin 539 -> 0 bytes .../plugins/theme_blue_dot/mask_button_hi.png | Bin 543 -> 0 bytes .../plugins/theme_blue_dot/mask_button_up.png | Bin 167 -> 0 bytes .../theme_blue_dot/mask_crv_linear.png | Bin 510 -> 0 bytes .../theme_blue_dot/mask_crv_smooth.png | Bin 646 -> 0 bytes .../theme_blue_dot/mask_pnt_linear.png | Bin 527 -> 0 bytes .../theme_blue_dot/mask_pnt_smooth.png | Bin 566 -> 0 bytes .../plugins/theme_blue_dot/mask_prst_crc.png | Bin 581 -> 0 bytes .../plugins/theme_blue_dot/mask_prst_load.png | Bin 285 -> 0 bytes .../plugins/theme_blue_dot/mask_prst_ovl.png | Bin 498 -> 0 bytes .../plugins/theme_blue_dot/mask_prst_save.png | Bin 295 -> 0 bytes .../plugins/theme_blue_dot/mask_prst_sqr.png | Bin 198 -> 0 bytes .../plugins/theme_blue_dot/mask_prst_tri.png | Bin 496 -> 0 bytes .../plugins/theme_blue_dot/mask_prst_trsh.png | Bin 239 -> 0 bytes .../plugins/theme_blue_dot/mask_pstn_cen.png | Bin 384 -> 0 bytes .../plugins/theme_blue_dot/mask_pstn_nrm.png | Bin 209 -> 0 bytes .../theme_blue_dot/mask_scale_chkd.png | Bin 1039 -> 0 bytes .../theme_blue_dot/mask_scale_chkdhi.png | Bin 971 -> 0 bytes .../plugins/theme_blue_dot/mask_scale_up.png | Bin 167 -> 0 bytes .../theme_blue_dot/mask_scale_uphi.png | Bin 566 -> 0 bytes .../plugins/theme_blue_dot/mask_scale_x.png | Bin 380 -> 0 bytes .../theme_blue_dot/mask_scale_xdown.png | Bin 720 -> 0 bytes .../plugins/theme_blue_dot/mask_scale_xy.png | Bin 677 -> 0 bytes .../theme_blue_dot/mask_scale_xydown.png | Bin 831 -> 0 bytes .../plugins/theme_blue_dot/mask_scale_y.png | Bin 380 -> 0 bytes .../theme_blue_dot/mask_scale_ydown.png | Bin 731 -> 0 bytes .../plugins/theme_blue_dot/unclear.png | Bin 557 -> 0 bytes .../plugins/theme_blue_dot/unclear_dn.png | Bin 539 -> 0 bytes .../plugins/theme_blue_dot/unclear_hi.png | Bin 543 -> 0 bytes .../plugins/theme_blue_dot/unclear_up.png | Bin 167 -> 0 bytes .../plugins/theme_bright/brighttheme.C | 145 +- .../plugins/theme_bright/mask_all_linear.png | Bin 310 -> 0 bytes .../plugins/theme_bright/mask_all_smooth.png | Bin 527 -> 0 bytes .../plugins/theme_bright/mask_button_dn.png | Bin 190 -> 0 bytes .../plugins/theme_bright/mask_button_hi.png | Bin 187 -> 0 bytes .../plugins/theme_bright/mask_button_up.png | Bin 167 -> 0 bytes .../plugins/theme_bright/mask_crv_linear.png | Bin 342 -> 0 bytes .../plugins/theme_bright/mask_crv_smooth.png | Bin 429 -> 0 bytes .../plugins/theme_bright/mask_pnt_linear.png | Bin 364 -> 0 bytes .../plugins/theme_bright/mask_pnt_smooth.png | Bin 396 -> 0 bytes .../plugins/theme_bright/mask_prst_crc.png | Bin 392 -> 0 bytes .../plugins/theme_bright/mask_prst_load.png | Bin 252 -> 0 bytes .../plugins/theme_bright/mask_prst_ovl.png | Bin 350 -> 0 bytes .../plugins/theme_bright/mask_prst_save.png | Bin 256 -> 0 bytes .../plugins/theme_bright/mask_prst_sqr.png | Bin 187 -> 0 bytes .../plugins/theme_bright/mask_prst_tri.png | Bin 320 -> 0 bytes .../plugins/theme_bright/mask_prst_trsh.png | Bin 218 -> 0 bytes .../plugins/theme_bright/mask_pstn_cen.png | Bin 295 -> 0 bytes .../plugins/theme_bright/mask_pstn_nrm.png | Bin 199 -> 0 bytes .../plugins/theme_bright/mask_scale_chkd.png | Bin 190 -> 0 bytes .../theme_bright/mask_scale_chkdhi.png | Bin 187 -> 0 bytes .../plugins/theme_bright/mask_scale_up.png | Bin 167 -> 0 bytes .../plugins/theme_bright/mask_scale_uphi.png | Bin 187 -> 0 bytes .../plugins/theme_bright/mask_scale_x.png | Bin 283 -> 0 bytes .../plugins/theme_bright/mask_scale_xdown.png | Bin 350 -> 0 bytes .../plugins/theme_bright/mask_scale_xy.png | Bin 438 -> 0 bytes .../theme_bright/mask_scale_xydown.png | Bin 600 -> 0 bytes .../plugins/theme_bright/mask_scale_y.png | Bin 301 -> 0 bytes .../plugins/theme_bright/mask_scale_ydown.png | Bin 346 -> 0 bytes .../plugins/theme_bright/unclear.png | Bin 356 -> 0 bytes .../plugins/theme_bright/unclear_dn.png | Bin 190 -> 0 bytes .../plugins/theme_bright/unclear_hi.png | Bin 187 -> 0 bytes .../plugins/theme_bright/unclear_up.png | Bin 167 -> 0 bytes .../plugins/theme_cakewalk/cakewalk.C | 98 +- cinelerra-5.1/plugins/theme_hulk/hulktheme.C | 144 +- .../plugins/theme_hulk/mask_all_linear.png | Bin 408 -> 0 bytes .../plugins/theme_hulk/mask_all_smooth.png | Bin 680 -> 0 bytes .../plugins/theme_hulk/mask_button_dn.png | Bin 312 -> 0 bytes .../plugins/theme_hulk/mask_button_hi.png | Bin 505 -> 0 bytes .../plugins/theme_hulk/mask_button_up.png | Bin 167 -> 0 bytes .../plugins/theme_hulk/mask_crv_linear.png | Bin 437 -> 0 bytes .../plugins/theme_hulk/mask_crv_smooth.png | Bin 588 -> 0 bytes .../plugins/theme_hulk/mask_pnt_linear.png | Bin 498 -> 0 bytes .../plugins/theme_hulk/mask_pnt_smooth.png | Bin 522 -> 0 bytes .../plugins/theme_hulk/mask_prst_crc.png | Bin 546 -> 0 bytes .../plugins/theme_hulk/mask_prst_load.png | Bin 296 -> 0 bytes .../plugins/theme_hulk/mask_prst_ovl.png | Bin 478 -> 0 bytes .../plugins/theme_hulk/mask_prst_save.png | Bin 310 -> 0 bytes .../plugins/theme_hulk/mask_prst_sqr.png | Bin 198 -> 0 bytes .../plugins/theme_hulk/mask_prst_tri.png | Bin 476 -> 0 bytes .../plugins/theme_hulk/mask_prst_trsh.png | Bin 236 -> 0 bytes .../plugins/theme_hulk/mask_pstn_cen.png | Bin 380 -> 0 bytes .../plugins/theme_hulk/mask_pstn_nrm.png | Bin 209 -> 0 bytes .../plugins/theme_hulk/mask_scale_chkd.png | Bin 440 -> 0 bytes .../plugins/theme_hulk/mask_scale_chkdhi.png | Bin 472 -> 0 bytes .../plugins/theme_hulk/mask_scale_up.png | Bin 167 -> 0 bytes .../plugins/theme_hulk/mask_scale_uphi.png | Bin 505 -> 0 bytes .../plugins/theme_hulk/mask_scale_x.png | Bin 364 -> 0 bytes .../plugins/theme_hulk/mask_scale_xdown.png | Bin 604 -> 0 bytes .../plugins/theme_hulk/mask_scale_xy.png | Bin 646 -> 0 bytes .../plugins/theme_hulk/mask_scale_xydown.png | Bin 1036 -> 0 bytes .../plugins/theme_hulk/mask_scale_y.png | Bin 369 -> 0 bytes .../plugins/theme_hulk/mask_scale_ydown.png | Bin 659 -> 0 bytes cinelerra-5.1/plugins/theme_hulk/unclear.png | Bin 521 -> 0 bytes .../plugins/theme_hulk/unclear_dn.png | Bin 312 -> 0 bytes .../plugins/theme_hulk/unclear_hi.png | Bin 505 -> 0 bytes .../plugins/theme_hulk/unclear_up.png | Bin 167 -> 0 bytes .../theme_neophyte/mask_all_linear.png | Bin 414 -> 0 bytes .../theme_neophyte/mask_all_smooth.png | Bin 692 -> 0 bytes .../plugins/theme_neophyte/mask_button_dn.png | Bin 228 -> 0 bytes .../plugins/theme_neophyte/mask_button_hi.png | Bin 200 -> 0 bytes .../plugins/theme_neophyte/mask_button_up.png | Bin 167 -> 0 bytes .../theme_neophyte/mask_crv_linear.png | Bin 492 -> 0 bytes .../theme_neophyte/mask_crv_smooth.png | Bin 625 -> 0 bytes .../theme_neophyte/mask_pnt_linear.png | Bin 531 -> 0 bytes .../theme_neophyte/mask_pnt_smooth.png | Bin 554 -> 0 bytes .../plugins/theme_neophyte/mask_prst_crc.png | Bin 585 -> 0 bytes .../plugins/theme_neophyte/mask_prst_load.png | Bin 283 -> 0 bytes .../plugins/theme_neophyte/mask_prst_ovl.png | Bin 511 -> 0 bytes .../plugins/theme_neophyte/mask_prst_save.png | Bin 296 -> 0 bytes .../plugins/theme_neophyte/mask_prst_sqr.png | Bin 198 -> 0 bytes .../plugins/theme_neophyte/mask_prst_tri.png | Bin 478 -> 0 bytes .../plugins/theme_neophyte/mask_prst_trsh.png | Bin 239 -> 0 bytes .../plugins/theme_neophyte/mask_pstn_cen.png | Bin 393 -> 0 bytes .../plugins/theme_neophyte/mask_pstn_nrm.png | Bin 209 -> 0 bytes .../theme_neophyte/mask_scale_chkd.png | Bin 259 -> 0 bytes .../theme_neophyte/mask_scale_chkdhi.png | Bin 236 -> 0 bytes .../plugins/theme_neophyte/mask_scale_up.png | Bin 167 -> 0 bytes .../theme_neophyte/mask_scale_uphi.png | Bin 205 -> 0 bytes .../plugins/theme_neophyte/mask_scale_x.png | Bin 381 -> 0 bytes .../theme_neophyte/mask_scale_xdown.png | Bin 533 -> 0 bytes .../plugins/theme_neophyte/mask_scale_xy.png | Bin 673 -> 0 bytes .../theme_neophyte/mask_scale_xydown.png | Bin 866 -> 0 bytes .../plugins/theme_neophyte/mask_scale_y.png | Bin 385 -> 0 bytes .../theme_neophyte/mask_scale_ydown.png | Bin 503 -> 0 bytes .../plugins/theme_neophyte/neophyte.C | 156 +-- .../plugins/theme_neophyte/unclear.png | Bin 544 -> 0 bytes .../plugins/theme_neophyte/unclear_dn.png | Bin 228 -> 0 bytes .../plugins/theme_neophyte/unclear_hi.png | Bin 200 -> 0 bytes .../plugins/theme_neophyte/unclear_up.png | Bin 167 -> 0 bytes .../theme_pinklady/mask_all_linear.png | Bin 413 -> 0 bytes .../theme_pinklady/mask_all_smooth.png | Bin 673 -> 0 bytes .../plugins/theme_pinklady/mask_button_dn.png | Bin 300 -> 0 bytes .../plugins/theme_pinklady/mask_button_hi.png | Bin 517 -> 0 bytes .../plugins/theme_pinklady/mask_button_up.png | Bin 167 -> 0 bytes .../theme_pinklady/mask_crv_linear.png | Bin 441 -> 0 bytes .../theme_pinklady/mask_crv_smooth.png | Bin 598 -> 0 bytes .../theme_pinklady/mask_pnt_linear.png | Bin 499 -> 0 bytes .../theme_pinklady/mask_pnt_smooth.png | Bin 530 -> 0 bytes .../plugins/theme_pinklady/mask_prst_crc.png | Bin 551 -> 0 bytes .../plugins/theme_pinklady/mask_prst_load.png | Bin 294 -> 0 bytes .../plugins/theme_pinklady/mask_prst_ovl.png | Bin 476 -> 0 bytes .../plugins/theme_pinklady/mask_prst_save.png | Bin 309 -> 0 bytes .../plugins/theme_pinklady/mask_prst_sqr.png | Bin 197 -> 0 bytes .../plugins/theme_pinklady/mask_prst_tri.png | Bin 474 -> 0 bytes .../plugins/theme_pinklady/mask_prst_trsh.png | Bin 237 -> 0 bytes .../plugins/theme_pinklady/mask_pstn_cen.png | Bin 383 -> 0 bytes .../plugins/theme_pinklady/mask_pstn_nrm.png | Bin 208 -> 0 bytes .../theme_pinklady/mask_scale_chkd.png | Bin 497 -> 0 bytes .../theme_pinklady/mask_scale_chkdhi.png | Bin 487 -> 0 bytes .../plugins/theme_pinklady/mask_scale_up.png | Bin 167 -> 0 bytes .../theme_pinklady/mask_scale_uphi.png | Bin 517 -> 0 bytes .../plugins/theme_pinklady/mask_scale_x.png | Bin 369 -> 0 bytes .../theme_pinklady/mask_scale_xdown.png | Bin 629 -> 0 bytes .../plugins/theme_pinklady/mask_scale_xy.png | Bin 651 -> 0 bytes .../theme_pinklady/mask_scale_xydown.png | Bin 1033 -> 0 bytes .../plugins/theme_pinklady/mask_scale_y.png | Bin 369 -> 0 bytes .../theme_pinklady/mask_scale_ydown.png | Bin 651 -> 0 bytes .../plugins/theme_pinklady/pinkladytheme.C | 147 +- .../plugins/theme_pinklady/unclear.png | Bin 529 -> 0 bytes .../plugins/theme_pinklady/unclear_dn.png | Bin 300 -> 0 bytes .../plugins/theme_pinklady/unclear_hi.png | Bin 517 -> 0 bytes .../plugins/theme_pinklady/unclear_up.png | Bin 167 -> 0 bytes .../plugins/theme_suv/mask_all_linear.png | Bin 414 -> 0 bytes .../plugins/theme_suv/mask_all_smooth.png | Bin 692 -> 0 bytes .../plugins/theme_suv/mask_button_dn.png | Bin 190 -> 0 bytes .../plugins/theme_suv/mask_button_hi.png | Bin 191 -> 0 bytes .../plugins/theme_suv/mask_button_up.png | Bin 167 -> 0 bytes .../plugins/theme_suv/mask_crv_linear.png | Bin 492 -> 0 bytes .../plugins/theme_suv/mask_crv_smooth.png | Bin 625 -> 0 bytes .../plugins/theme_suv/mask_pnt_linear.png | Bin 531 -> 0 bytes .../plugins/theme_suv/mask_pnt_smooth.png | Bin 554 -> 0 bytes .../plugins/theme_suv/mask_prst_crc.png | Bin 585 -> 0 bytes .../plugins/theme_suv/mask_prst_load.png | Bin 283 -> 0 bytes .../plugins/theme_suv/mask_prst_ovl.png | Bin 511 -> 0 bytes .../plugins/theme_suv/mask_prst_save.png | Bin 296 -> 0 bytes .../plugins/theme_suv/mask_prst_sqr.png | Bin 198 -> 0 bytes .../plugins/theme_suv/mask_prst_tri.png | Bin 478 -> 0 bytes .../plugins/theme_suv/mask_prst_trsh.png | Bin 239 -> 0 bytes .../plugins/theme_suv/mask_pstn_cen.png | Bin 393 -> 0 bytes .../plugins/theme_suv/mask_pstn_nrm.png | Bin 209 -> 0 bytes .../plugins/theme_suv/mask_scale_chkd.png | Bin 190 -> 0 bytes .../plugins/theme_suv/mask_scale_chkdhi.png | Bin 190 -> 0 bytes .../plugins/theme_suv/mask_scale_up.png | Bin 167 -> 0 bytes .../plugins/theme_suv/mask_scale_uphi.png | Bin 191 -> 0 bytes .../plugins/theme_suv/mask_scale_x.png | Bin 381 -> 0 bytes .../plugins/theme_suv/mask_scale_xdown.png | Bin 426 -> 0 bytes .../plugins/theme_suv/mask_scale_xy.png | Bin 673 -> 0 bytes .../plugins/theme_suv/mask_scale_xydown.png | Bin 666 -> 0 bytes .../plugins/theme_suv/mask_scale_y.png | Bin 385 -> 0 bytes .../plugins/theme_suv/mask_scale_ydown.png | Bin 407 -> 0 bytes cinelerra-5.1/plugins/theme_suv/suv.C | 148 +- cinelerra-5.1/plugins/theme_suv/unclear.png | Bin 544 -> 0 bytes .../plugins/theme_suv/unclear_dn.png | Bin 190 -> 0 bytes .../plugins/theme_suv/unclear_hi.png | Bin 191 -> 0 bytes .../plugins/theme_suv/unclear_up.png | Bin 167 -> 0 bytes .../plugins/theme_unflat/mask_all_linear.png | Bin 404 -> 0 bytes .../plugins/theme_unflat/mask_all_smooth.png | Bin 699 -> 0 bytes .../plugins/theme_unflat/mask_button_dn.png | Bin 266 -> 0 bytes .../plugins/theme_unflat/mask_button_hi.png | Bin 441 -> 0 bytes .../plugins/theme_unflat/mask_button_up.png | Bin 167 -> 0 bytes .../plugins/theme_unflat/mask_crv_linear.png | Bin 481 -> 0 bytes .../plugins/theme_unflat/mask_crv_smooth.png | Bin 626 -> 0 bytes .../plugins/theme_unflat/mask_pnt_linear.png | Bin 500 -> 0 bytes .../plugins/theme_unflat/mask_pnt_smooth.png | Bin 556 -> 0 bytes .../plugins/theme_unflat/mask_prst_crc.png | Bin 574 -> 0 bytes .../plugins/theme_unflat/mask_prst_load.png | Bin 292 -> 0 bytes .../plugins/theme_unflat/mask_prst_ovl.png | Bin 511 -> 0 bytes .../plugins/theme_unflat/mask_prst_save.png | Bin 308 -> 0 bytes .../plugins/theme_unflat/mask_prst_sqr.png | Bin 198 -> 0 bytes .../plugins/theme_unflat/mask_prst_tri.png | Bin 475 -> 0 bytes .../plugins/theme_unflat/mask_prst_trsh.png | Bin 237 -> 0 bytes .../plugins/theme_unflat/mask_pstn_cen.png | Bin 399 -> 0 bytes .../plugins/theme_unflat/mask_pstn_nrm.png | Bin 209 -> 0 bytes .../plugins/theme_unflat/mask_scale_chkd.png | Bin 458 -> 0 bytes .../theme_unflat/mask_scale_chkdhi.png | Bin 455 -> 0 bytes .../plugins/theme_unflat/mask_scale_up.png | Bin 167 -> 0 bytes .../plugins/theme_unflat/mask_scale_uphi.png | Bin 441 -> 0 bytes .../plugins/theme_unflat/mask_scale_x.png | Bin 381 -> 0 bytes .../plugins/theme_unflat/mask_scale_xdown.png | Bin 565 -> 0 bytes .../plugins/theme_unflat/mask_scale_xy.png | Bin 667 -> 0 bytes .../theme_unflat/mask_scale_xydown.png | Bin 943 -> 0 bytes .../plugins/theme_unflat/mask_scale_y.png | Bin 387 -> 0 bytes .../plugins/theme_unflat/mask_scale_ydown.png | Bin 547 -> 0 bytes .../plugins/theme_unflat/unclear.png | Bin 556 -> 0 bytes .../plugins/theme_unflat/unclear_dn.png | Bin 266 -> 0 bytes .../plugins/theme_unflat/unclear_hi.png | Bin 441 -> 0 bytes .../plugins/theme_unflat/unclear_up.png | Bin 167 -> 0 bytes .../plugins/theme_unflat/unflattheme.C | 178 +-- .../plugins/threshold/thresholdwindow.C | 48 +- cinelerra-5.1/plugins/timeavg/timeavgwindow.C | 68 +- cinelerra-5.1/plugins/timefront/timefront.C | 86 +- .../plugins/timestretch/timestretch.C | 16 +- .../plugins/timestretchrt/timestretchrt.C | 10 +- cinelerra-5.1/plugins/titler/titler.C | 4 +- cinelerra-5.1/plugins/titler/titlerwindow.C | 115 +- cinelerra-5.1/plugins/tracer/tracerwindow.C | 42 +- .../plugins/translate/translatewin.C | 50 +- cinelerra-5.1/plugins/unsharp/unsharpwindow.C | 32 +- cinelerra-5.1/plugins/vocoder/vocoder.C | 8 +- cinelerra-5.1/plugins/wave/wave.C | 38 +- cinelerra-5.1/plugins/whirl/whirl.C | 43 +- cinelerra-5.1/plugins/whirl/whirlwindow.C | 29 +- cinelerra-5.1/plugins/wipe/wipe.C | 8 +- cinelerra-5.1/plugins/yuv/yuv.C | 20 +- cinelerra-5.1/plugins/yuv411/yuv411win.C | 26 +- cinelerra-5.1/plugins/yuvshift/yuvshift.C | 24 +- cinelerra-5.1/plugins/zoom/zoom.C | 16 +- cinelerra-5.1/plugins/zoomblur/zoomblur.C | 58 +- 659 files changed, 5918 insertions(+), 9008 deletions(-) delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_all_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_all_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_button_dn.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_button_hi.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_button_up.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_crv_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_crv_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_pnt_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_pnt_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_prst_crc.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_prst_load.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_prst_ovl.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_prst_save.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_prst_sqr.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_prst_tri.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_prst_trsh.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_pstn_cen.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_pstn_nrm.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_scale_chkd.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_scale_chkdhi.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_scale_up.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_scale_uphi.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_scale_x.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_scale_xdown.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_scale_xy.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_scale_xydown.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_scale_y.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/mask_scale_ydown.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/unclear.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/unclear_dn.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/unclear_hi.png delete mode 100644 cinelerra-5.1/plugins/theme_blond/unclear_up.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/blondcvtheme.C.orig delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/buttons.xcf.bz2 delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/cwindow.xcf.bz2 delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/cwindow2.xcf.bz2 delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/hscroll.xcf.bz2 delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/hscroll2.xcf.bz2 delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_all_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_all_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_button_dn.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_button_hi.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_button_up.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_crv_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_crv_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_pnt_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_pnt_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_prst_crc.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_prst_load.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_prst_ovl.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_prst_save.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_prst_sqr.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_prst_tri.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_prst_trsh.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_pstn_cen.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_pstn_nrm.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_scale_chkd.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_scale_chkdhi.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_scale_up.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_scale_uphi.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_scale_x.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_scale_xdown.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_scale_xy.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_scale_xydown.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_scale_y.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mask_scale_ydown.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mwindow.xcf.bz2 delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/mwindow2.xcf.bz2 delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/preferencesbutton.xcf.bz2 delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/recordgui.xcf.bz2 delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/recordmonitor.xcf.bz2 delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/scrollbar.xcf.bz2 delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/slider_bg.xcf.bz2 delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/slider_button.xcf.bz2 delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/statusbar_cancel.xcf.bz2 delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/tumbler.xcf.bz2 delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/unclear.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/unclear_dn.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/unclear_hi.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/unclear_up.png delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/vscrollbar.xcf.bz2 delete mode 100644 cinelerra-5.1/plugins/theme_blond_cv/vwindow.xcf.bz2 delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_all_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_all_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_button_dn.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_button_hi.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_button_up.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_crv_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_crv_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_pnt_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_pnt_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_prst_crc.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_prst_load.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_prst_ovl.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_prst_save.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_prst_sqr.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_prst_tri.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_prst_trsh.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_pstn_cen.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_pstn_nrm.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_scale_chkd.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_scale_chkdhi.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_scale_up.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_scale_uphi.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_scale_x.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_scale_xdown.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_scale_xy.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_scale_xydown.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_scale_y.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/mask_scale_ydown.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/unclear.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/unclear_dn.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/unclear_hi.png delete mode 100644 cinelerra-5.1/plugins/theme_blue/unclear_up.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_all_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_all_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_button_dn.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_button_hi.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_button_up.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_crv_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_crv_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_pnt_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_pnt_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_prst_crc.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_prst_load.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_prst_ovl.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_prst_save.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_prst_sqr.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_prst_tri.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_prst_trsh.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_pstn_cen.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_pstn_nrm.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_scale_chkd.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_scale_chkdhi.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_scale_up.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_scale_uphi.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_scale_x.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_scale_xdown.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_scale_xy.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_scale_xydown.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_scale_y.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/mask_scale_ydown.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/unclear.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/unclear_dn.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/unclear_hi.png delete mode 100644 cinelerra-5.1/plugins/theme_blue_dot/unclear_up.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_all_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_all_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_button_dn.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_button_hi.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_button_up.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_crv_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_crv_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_pnt_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_pnt_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_prst_crc.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_prst_load.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_prst_ovl.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_prst_save.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_prst_sqr.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_prst_tri.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_prst_trsh.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_pstn_cen.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_pstn_nrm.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_scale_chkd.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_scale_chkdhi.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_scale_up.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_scale_uphi.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_scale_x.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_scale_xdown.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_scale_xy.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_scale_xydown.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_scale_y.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/mask_scale_ydown.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/unclear.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/unclear_dn.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/unclear_hi.png delete mode 100644 cinelerra-5.1/plugins/theme_bright/unclear_up.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_all_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_all_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_button_dn.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_button_hi.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_button_up.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_crv_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_crv_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_pnt_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_pnt_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_prst_crc.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_prst_load.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_prst_ovl.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_prst_save.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_prst_sqr.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_prst_tri.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_prst_trsh.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_pstn_cen.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_pstn_nrm.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_scale_chkd.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_scale_chkdhi.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_scale_up.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_scale_uphi.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_scale_x.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_scale_xdown.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_scale_xy.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_scale_xydown.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_scale_y.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/mask_scale_ydown.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/unclear.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/unclear_dn.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/unclear_hi.png delete mode 100644 cinelerra-5.1/plugins/theme_hulk/unclear_up.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_all_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_all_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_button_dn.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_button_hi.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_button_up.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_crv_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_crv_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_pnt_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_pnt_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_prst_crc.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_prst_load.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_prst_ovl.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_prst_save.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_prst_sqr.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_prst_tri.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_prst_trsh.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_pstn_cen.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_pstn_nrm.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_scale_chkd.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_scale_chkdhi.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_scale_up.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_scale_uphi.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_scale_x.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_scale_xdown.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_scale_xy.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_scale_xydown.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_scale_y.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/mask_scale_ydown.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/unclear.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/unclear_dn.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/unclear_hi.png delete mode 100644 cinelerra-5.1/plugins/theme_neophyte/unclear_up.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_all_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_all_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_button_dn.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_button_hi.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_button_up.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_crv_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_crv_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_pnt_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_pnt_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_prst_crc.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_prst_load.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_prst_ovl.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_prst_save.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_prst_sqr.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_prst_tri.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_prst_trsh.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_pstn_cen.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_pstn_nrm.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_scale_chkd.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_scale_chkdhi.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_scale_up.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_scale_uphi.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_scale_x.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_scale_xdown.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_scale_xy.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_scale_xydown.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_scale_y.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/mask_scale_ydown.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/unclear.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/unclear_dn.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/unclear_hi.png delete mode 100644 cinelerra-5.1/plugins/theme_pinklady/unclear_up.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_all_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_all_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_button_dn.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_button_hi.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_button_up.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_crv_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_crv_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_pnt_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_pnt_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_prst_crc.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_prst_load.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_prst_ovl.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_prst_save.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_prst_sqr.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_prst_tri.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_prst_trsh.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_pstn_cen.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_pstn_nrm.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_scale_chkd.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_scale_chkdhi.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_scale_up.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_scale_uphi.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_scale_x.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_scale_xdown.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_scale_xy.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_scale_xydown.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_scale_y.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/mask_scale_ydown.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/unclear.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/unclear_dn.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/unclear_hi.png delete mode 100644 cinelerra-5.1/plugins/theme_suv/unclear_up.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_all_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_all_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_button_dn.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_button_hi.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_button_up.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_crv_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_crv_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_pnt_linear.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_pnt_smooth.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_prst_crc.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_prst_load.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_prst_ovl.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_prst_save.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_prst_sqr.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_prst_tri.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_prst_trsh.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_pstn_cen.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_pstn_nrm.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_scale_chkd.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_scale_chkdhi.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_scale_up.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_scale_uphi.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_scale_x.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_scale_xdown.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_scale_xy.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_scale_xydown.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_scale_y.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/mask_scale_ydown.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/unclear.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/unclear_dn.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/unclear_hi.png delete mode 100644 cinelerra-5.1/plugins/theme_unflat/unclear_up.png diff --git a/cinelerra-5.1/cinelerra/aboutprefs.C b/cinelerra-5.1/cinelerra/aboutprefs.C index d07ce4de..f6fdde4a 100644 --- a/cinelerra-5.1/cinelerra/aboutprefs.C +++ b/cinelerra-5.1/cinelerra/aboutprefs.C @@ -47,8 +47,6 @@ void AboutPrefs::create_objects() { lock_window("AboutPrefs::create_objects"); int x, y; - - BC_Resources *resources = BC_WindowBase::get_resources(); // add_subwindow(new BC_Title(mwindow->theme->preferencestitle_x, @@ -99,12 +97,12 @@ void AboutPrefs::create_objects() about.append(new BC_ListBoxItem(msg)); } BC_ListBox *listbox; - add_subwindow(listbox = new BC_ListBox(x, y, 450, 280, + add_subwindow(listbox = new BC_ListBox(x, y, xS(450), yS(280), LISTBOX_TEXT, &about, 0, 0, 1)); - y += listbox->get_h() + get_text_height(LARGEFONT) + 10; + y += listbox->get_h() + get_text_height(LARGEFONT) + yS(10); } else - y += 300 + get_text_height(LARGEFONT) + 10; + y += yS(300) + get_text_height(LARGEFONT) + yS(10); set_font(LARGEFONT); set_color(resources->text_default); @@ -130,22 +128,17 @@ void AboutPrefs::create_objects() draw_text(x, y, REPOMAINTXT); #endif - x = get_w() - mwindow->theme->about_bg->get_w() - 10; + x = get_w() - mwindow->theme->about_bg->get_w() - xS(10); y = mwindow->theme->preferencesoptions_y; BC_Pixmap *temp_pixmap = new BC_Pixmap(this, mwindow->theme->about_bg, PIXMAP_ALPHA); - draw_pixmap(temp_pixmap, - x, - y); - + draw_pixmap(temp_pixmap, x, y); delete temp_pixmap; - - x += mwindow->theme->about_bg->get_w() + 10; + x += mwindow->theme->about_bg->get_w() + xS(10); y += get_text_height(LARGEFONT) * 2; - flash(); flush(); unlock_window(); diff --git a/cinelerra-5.1/cinelerra/adeviceprefs.C b/cinelerra-5.1/cinelerra/adeviceprefs.C index d93cef30..4d93df69 100644 --- a/cinelerra-5.1/cinelerra/adeviceprefs.C +++ b/cinelerra-5.1/cinelerra/adeviceprefs.C @@ -108,10 +108,7 @@ int ADevicePrefs::initialize(int creation) if(!menu) { dialog->add_subwindow(menu = new ADriverMenu(x, - y + 10, - this, - (mode == MODERECORD), - driver)); + y + yS(10), this, (mode == MODERECORD), driver)); menu->create_objects(); } @@ -270,7 +267,7 @@ int ADevicePrefs::create_oss_objs() BC_Resources *resources = BC_WindowBase::get_resources(); for(int i = 0; i < MAXDEVICES; i++) { - int x1 = x + menu->get_w() + 5; + int x1 = x + menu->get_w() + xS(5); #if 0 switch(mode) { case MODEPLAY: @@ -283,7 +280,7 @@ int ADevicePrefs::create_oss_objs() output_int = &out_config->oss_enable[i]; break; } - dialog->add_subwindow(oss_enable[i] = new OSSEnable(x1, y1 + 20, output_int)); + dialog->add_subwindow(oss_enable[i] = new OSSEnable(x1, y1 + yS(20), output_int)); x1 += oss_enable[i]->get_w() + margin; #endif switch(mode) { @@ -378,7 +375,7 @@ int ADevicePrefs::create_alsa_objs() alsa_device->create_objects(); int x2 = x1; - x1 += alsa_device->get_w() + 5; + x1 += alsa_device->get_w() + xS(5); switch(mode) { case MODEPLAY: output_int = &out_config->alsa_out_bits; @@ -415,7 +412,7 @@ int ADevicePrefs::create_alsa_objs() int ADevicePrefs::create_esound_objs() { - int x1 = x + menu->get_w() + 5; + int x1 = x + menu->get_w() + xS(5); char *output_char = 0; int *output_int = 0; BC_Resources *resources = BC_WindowBase::get_resources(); @@ -434,7 +431,7 @@ int ADevicePrefs::create_esound_objs() server_title = new BC_Title(x1, y, _("Server:"), MEDIUMFONT, resources->text_default); dialog->add_subwindow(server_title); - esound_server = new ADeviceTextBox(x1, y + 20, output_char); + esound_server = new ADeviceTextBox(x1, y + yS(20), output_char); dialog->add_subwindow(esound_server); switch(mode) { @@ -448,18 +445,20 @@ int ADevicePrefs::create_esound_objs() output_int = &out_config->esound_out_port; break; } - x1 += esound_server->get_w() + 5; + x1 += esound_server->get_w() + xS(5); port_title = new BC_Title(x1, y, _("Port:"), MEDIUMFONT, resources->text_default); dialog->add_subwindow(port_title); - esound_port = new ADeviceIntBox(x1, y + 20, output_int); + esound_port = new ADeviceIntBox(x1, y + yS(20), output_int); dialog->add_subwindow(esound_port); return 0; } int ADevicePrefs::create_firewire_objs() { - int x1 = x + menu->get_w() + 5; + int xs5 = xS(5); + int ys20 = yS(20); + int x1 = x + menu->get_w() + xs5; int *output_int = 0; char *output_char = 0; BC_Resources *resources = BC_WindowBase::get_resources(); @@ -481,8 +480,8 @@ int ADevicePrefs::create_firewire_objs() if(output_char) { dialog->add_subwindow(path_title = new BC_Title(x1, y, _("Device Path:"), MEDIUMFONT, resources->text_default)); - dialog->add_subwindow(firewire_path = new ADeviceTextBox(x1, y + 20, output_char)); - x1 += firewire_path->get_w() + 5; + dialog->add_subwindow(firewire_path = new ADeviceTextBox(x1, y + ys20, output_char)); + x1 += firewire_path->get_w() + xs5; } // Firewire port @@ -503,10 +502,10 @@ int ADevicePrefs::create_firewire_objs() port_title = new BC_Title(x1, y, _("Port:"), MEDIUMFONT, resources->text_default); dialog->add_subwindow(port_title); - firewire_port = new ADeviceIntBox(x1, y + 20, output_int); + firewire_port = new ADeviceIntBox(x1, y + ys20, output_int); dialog->add_subwindow(firewire_port); - x1 += firewire_port->get_w() + 5; + x1 += firewire_port->get_w() + xs5; // Firewire channel switch(mode) { @@ -523,9 +522,9 @@ int ADevicePrefs::create_firewire_objs() channel_title = new BC_Title(x1, y, _("Channel:"), MEDIUMFONT, resources->text_default); dialog->add_subwindow(channel_title); - firewire_channel = new ADeviceIntBox(x1, y + 20, output_int); + firewire_channel = new ADeviceIntBox(x1, y + ys20, output_int); dialog->add_subwindow(firewire_channel); - x1 += firewire_channel->get_w() + 5; + x1 += firewire_channel->get_w() + xs5; // Syt offset switch(mode) { @@ -547,9 +546,9 @@ int ADevicePrefs::create_firewire_objs() syt_title = new BC_Title(x1, y, _("Syt Offset:"), MEDIUMFONT, resources->text_default); dialog->add_subwindow(syt_title); - firewire_syt = new ADeviceIntBox(x1, y + 20, output_int); + firewire_syt = new ADeviceIntBox(x1, y + ys20, output_int); dialog->add_subwindow(firewire_syt); - x1 += firewire_syt->get_w() + 5; + x1 += firewire_syt->get_w() + xs5; } return 0; @@ -559,31 +558,31 @@ int ADevicePrefs::create_firewire_objs() int ADevicePrefs::create_dvb_objs() { - int x1 = x + menu->get_w() + 30; - int y1 = y + 10; + int x1 = x + menu->get_w() + xS(30); + int y1 = y + yS(10); char *output_char = in_config->dvb_in_adapter; - int y2 = y1 - BC_Title::calculate_h(dialog, _("DVB Adapter:"), MEDIUMFONT) - 5; + int y2 = y1 - BC_Title::calculate_h(dialog, _("DVB Adapter:"), MEDIUMFONT) - yS(5); BC_Resources *resources = BC_WindowBase::get_resources(); dvb_adapter_title = new BC_Title(x1, y2, _("DVB Adapter:"), MEDIUMFONT, resources->text_default); dialog->add_subwindow(dvb_adapter_title); dvb_adapter_path = new ADeviceTextBox(x1, y1, output_char); dialog->add_subwindow(dvb_adapter_path); - int x2 = x1 + dvb_adapter_path->get_w() + 5; + int x2 = x1 + dvb_adapter_path->get_w() + xS(5); dvb_device_title = new BC_Title(x2, y2, _("dev:"), MEDIUMFONT, resources->text_default); dialog->add_subwindow(dvb_device_title); int *output_int = &in_config->dvb_in_device; - dvb_adapter_device = new ADeviceTumbleBox(this, x2, y1, output_int, 0, 9, 20); + dvb_adapter_device = new ADeviceTumbleBox(this, x2, y1, output_int, 0, 9, xS(20)); dvb_adapter_device->create_objects(); - x2 += dvb_device_title->get_w() + 30; + x2 += dvb_device_title->get_w() + xS(30); bits_title = new BC_Title(x2, y2, _("Bits:"), MEDIUMFONT, resources->text_default); dialog->add_subwindow(bits_title); output_int = &in_config->dvb_in_bits; dvb_bits = new BitsPopup(dialog, x2, y1, output_int, 0, 0, 0, 0, 1); dvb_bits->create_objects(); - x1 += 100; y1 += dvb_adapter_path->get_h() + 5; + x1 += xS(100); y1 += dvb_adapter_path->get_h() + yS(5); output_int = &in_config->follow_audio; follow_audio_config = new BC_CheckBox(x1, y1, output_int, _("Follow audio config")); dialog->add_subwindow(follow_audio_config); @@ -592,9 +591,9 @@ int ADevicePrefs::create_dvb_objs() int ADevicePrefs::create_v4l2mpeg_objs() { - int x1 = x + menu->get_w() + 30; - int y1 = y + 10; - int y2 = y1 - BC_Title::calculate_h(dialog, _("Bits:"), MEDIUMFONT) - 5; + int x1 = x + menu->get_w() + xS(30); + int y1 = y + yS(10); + int y2 = y1 - BC_Title::calculate_h(dialog, _("Bits:"), MEDIUMFONT) - yS(5); BC_Resources *resources = BC_WindowBase::get_resources(); bits_title = new BC_Title(x1, y2, _("Bits:"), MEDIUMFONT, resources->text_default); @@ -602,7 +601,7 @@ int ADevicePrefs::create_v4l2mpeg_objs() int *output_int = &in_config->v4l2_in_bits; v4l2_bits = new BitsPopup(dialog, x1, y1, output_int, 0, 0, 0, 0, 1); v4l2_bits->create_objects(); - x1 += v4l2_bits->get_w() + 10; + x1 += v4l2_bits->get_w() + xS(10); follow_audio_config = new BC_CheckBox(x1, y1, &in_config->follow_audio, _("Follow audio config")); dialog->add_subwindow(follow_audio_config); @@ -612,7 +611,7 @@ int ADevicePrefs::create_v4l2mpeg_objs() ADriverMenu::ADriverMenu(int x, int y, ADevicePrefs *device_prefs, int do_input, int *output) - : BC_PopupMenu(x, y, 125, adriver_to_string(*output), 1) + : BC_PopupMenu(x, y, xS(125), adriver_to_string(*output), 1) { this->output = output; this->do_input = do_input; @@ -730,7 +729,7 @@ int OSSEnable::handle_event() ADeviceTextBox::ADeviceTextBox(int x, int y, char *output) - : BC_TextBox(x, y, 150, 1, output) + : BC_TextBox(x, y, xS(150), 1, output) { this->output = output; } @@ -742,7 +741,7 @@ int ADeviceTextBox::handle_event() } ADeviceIntBox::ADeviceIntBox(int x, int y, int *output) - : BC_TextBox(x, y, 80, 1, *output) + : BC_TextBox(x, y, xS(80), 1, *output) { this->output = output; } @@ -775,7 +774,7 @@ ALSADevice::ALSADevice(PreferencesDialog *dialog, int y, char *output, ArrayList *devices) - : BC_PopupTextBox(dialog, devices, output, x, y, 200, 200) + : BC_PopupTextBox(dialog, devices, output, x, y, xS(200), yS(200)) { this->output = output; } diff --git a/cinelerra-5.1/cinelerra/apanel.C b/cinelerra-5.1/cinelerra/apanel.C index 0f39c10b..de2ad953 100644 --- a/cinelerra-5.1/cinelerra/apanel.C +++ b/cinelerra-5.1/cinelerra/apanel.C @@ -40,17 +40,18 @@ APanel::~APanel() void APanel::create_objects() { - int x = this->x + 5, y = this->y + 10; + int ys10 = yS(10), ys20 = yS(20); + int x = this->x + xS(5), y = this->y + ys10; char string[BCTEXTLEN]; int x1 = x; subwindow->add_subwindow(new BC_Title(x, y, _("Automation"))); - y += 20; + y += ys20; for(int i = 0; i < PLUGINS; i++) { sprintf(string, _("Plugin %d"), i + 1); subwindow->add_subwindow(new BC_Title(x, y, string, SMALLFONT)); - subwindow->add_subwindow(plugin_autos[i] = new APanelPluginAuto(mwindow, this, x, y + 20)); + subwindow->add_subwindow(plugin_autos[i] = new APanelPluginAuto(mwindow, this, x, y + ys20)); if(x == x1) { x += plugin_autos[i]->get_w(); @@ -58,7 +59,7 @@ void APanel::create_objects() else { x = x1; - y += plugin_autos[i]->get_h() + 20; + y += plugin_autos[i]->get_h() + ys20; } } @@ -71,11 +72,7 @@ void APanel::create_objects() APanelPluginAuto::APanelPluginAuto(MWindow *mwindow, APanel *gui, int x, int y) - : BC_FPot(x, - y, - 0, - -1, - 1) + : BC_FPot(x, y, 0, -1, 1) { this->mwindow = mwindow; this->gui = gui; diff --git a/cinelerra-5.1/cinelerra/apatchgui.C b/cinelerra-5.1/cinelerra/apatchgui.C index 8743268d..0e8adca2 100644 --- a/cinelerra-5.1/cinelerra/apatchgui.C +++ b/cinelerra-5.1/cinelerra/apatchgui.C @@ -115,7 +115,7 @@ int APatchGUI::update(int x, int y) else if( h >= y2 ) { float v = mwindow->get_float_auto(this, AUTOMATION_FADE)->get_value(); patchbay->add_subwindow(fade = new AFadePatch(this, x1+x, y1+y, - patchbay->get_w() - 10, v)); + patchbay->get_w() - xS(10), v)); } y1 = y2; @@ -162,11 +162,11 @@ int APatchGUI::update(int x, int y) } else if( h >= y2 ) { patchbay->add_subwindow(mix = new AMixPatch(mwindow, this, x1+x, y1+y+5)); - x1 += mix->get_w() + 10; + x1 += mix->get_w() + xS(10); patchbay->add_subwindow(pan = new APanPatch(mwindow, this, x1+x, y1+y)); - x1 += pan->get_w() + 20; + x1 += pan->get_w() + xS(20); patchbay->add_subwindow(nudge = new NudgePatch(mwindow, this, x1+x, y1+y, - patchbay->get_w() - x1-x - 10)); + patchbay->get_w() - x1-x - xS(10))); } y1 = y2; @@ -221,7 +221,7 @@ int AFadePatch::handle_event() } AKeyFadePatch::AKeyFadePatch(MWindow *mwindow, APatchGUI *patch, int x, int y) - : BC_SubWindow(x,y, 200,20, GWindowGUI::auto_colors[AUTOMATION_FADE]) + : BC_SubWindow(x,y, xS(200),yS(20), GWindowGUI::auto_colors[AUTOMATION_FADE]) { this->mwindow = mwindow; this->patch = patch; @@ -231,7 +231,7 @@ void AKeyFadePatch::create_objects() { int x = 0, y = 0; float v = mwindow->get_float_auto(patch, AUTOMATION_FADE)->get_value(); - add_subwindow(akey_fade_text = new AKeyFadeText(this, x, y, 64, v)); + add_subwindow(akey_fade_text = new AKeyFadeText(this, x, y, xS(64), v)); x += akey_fade_text->get_w(); VFrame **lok_images = mwindow->theme->get_image_set("lok"); int w1 = get_w() - x - lok_images[0]->get_w(); @@ -345,14 +345,13 @@ int AKeyPanPatch::handle_event() AMeterPatch::AMeterPatch(MWindow *mwindow, APatchGUI *patch, int x, int y) - : BC_Meter(x, y, METER_HORIZ, patch->patchbay->get_w() - 10, + : BC_Meter(x, y, METER_HORIZ, patch->patchbay->get_w() - xS(10), mwindow->edl->session->min_meter_db, mwindow->edl->session->max_meter_db, mwindow->edl->session->meter_format, 0, -1) { this->mwindow = mwindow; this->patch = patch; - set_delays(TRACKING_RATE * 10, - TRACKING_RATE); + set_delays(TRACKING_RATE * 10, TRACKING_RATE); } int AMeterPatch::button_press_event() diff --git a/cinelerra-5.1/cinelerra/appearanceprefs.C b/cinelerra-5.1/cinelerra/appearanceprefs.C index 4ca46b2d..840dccc6 100644 --- a/cinelerra-5.1/cinelerra/appearanceprefs.C +++ b/cinelerra-5.1/cinelerra/appearanceprefs.C @@ -61,51 +61,54 @@ AppearancePrefs::~AppearancePrefs() void AppearancePrefs::create_objects() { + int xs5 = xS(5), xs10 = xS(10), xs30 = xS(30); + int ys5 = yS(5), ys10 = yS(10), ys15 = yS(15); + int ys20 = yS(20), ys35 = yS(35); BC_Resources *resources = BC_WindowBase::get_resources(); int margin = mwindow->theme->widget_border; char string[BCTEXTLEN]; int x0 = mwindow->theme->preferencesoptions_x; int y0 = mwindow->theme->preferencesoptions_y; - int x = x0, y = y0, x1 = x + 100; + int x = x0, y = y0, x1 = x + xS(100); add_subwindow(new BC_Title(x, y, _("Layout:"), LARGEFONT, resources->text_default)); - y += 35; + y += ys35; int y1 = y; ViewTheme *theme; add_subwindow(new BC_Title(x, y, _("Theme:"))); add_subwindow(theme = new ViewTheme(x1, y, pwindow)); theme->create_objects(); - y += theme->get_h() + 5; + y += theme->get_h() + ys5; x = x0; ViewPluginIcons *plugin_icons; add_subwindow(new BC_Title(x, y, _("Plugin Icons:"))); add_subwindow(plugin_icons = new ViewPluginIcons(x1, y, pwindow)); plugin_icons->create_objects(); - y += plugin_icons->get_h() + 15; + y += plugin_icons->get_h() + ys15; x1 = get_w()/2; - int x2 = x1 + 160, y2 = y; + int x2 = x1 + xS(160), y2 = y; y = y1; add_subwindow(new BC_Title(x1, y, _("View thumbnail size:"))); thumbnail_size = new ViewThumbnailSize(pwindow, this, x2, y); thumbnail_size->create_objects(); - y += thumbnail_size->get_h() + 5; + y += thumbnail_size->get_h() + ys5; add_subwindow(new BC_Title(x1, y, _("Vicon quality:"))); vicon_size = new ViewViconSize(pwindow, this, x2, y); vicon_size->create_objects(); - y += vicon_size->get_h() + 5; + y += vicon_size->get_h() + ys5; add_subwindow(new BC_Title(x1, y, _("Vicon color mode:"))); add_subwindow(vicon_color_mode = new ViewViconColorMode(pwindow, x2, y)); vicon_color_mode->create_objects(); - y += vicon_color_mode->get_h() + 5; + y += vicon_color_mode->get_h() + ys5; y = bmax(y, y2); - y += 10; - add_subwindow(new BC_Bar(5, y, get_w() - 10)); - y += 15; + y += ys10; + add_subwindow(new BC_Bar(xs5, y, get_w() - xs10)); + y += ys15; add_subwindow(new BC_Title(x, y, _("Time Format:"), LARGEFONT, resources->text_default)); @@ -113,124 +116,124 @@ void AppearancePrefs::create_objects() add_subwindow(new BC_Title(x1, y, _("Flags:"), LARGEFONT, resources->text_default)); - y += get_text_height(LARGEFONT) + 5; - y += 10; + y += get_text_height(LARGEFONT) + ys5; + y += ys10; y1 = y; add_subwindow(hms = new TimeFormatHMS(pwindow, this, pwindow->thread->edl->session->time_format == TIME_HMS, x, y)); - y += 20; + y += ys20; add_subwindow(hmsf = new TimeFormatHMSF(pwindow, this, pwindow->thread->edl->session->time_format == TIME_HMSF, x, y)); - y += 20; + y += ys20; add_subwindow(samples = new TimeFormatSamples(pwindow, this, pwindow->thread->edl->session->time_format == TIME_SAMPLES, x, y)); - y += 20; + y += ys20; add_subwindow(hex = new TimeFormatHex(pwindow, this, pwindow->thread->edl->session->time_format == TIME_SAMPLES_HEX, x, y)); - y += 20; + y += ys20; add_subwindow(frames = new TimeFormatFrames(pwindow, this, pwindow->thread->edl->session->time_format == TIME_FRAMES, x, y)); - y += 20; + y += ys20; add_subwindow(feet = new TimeFormatFeet(pwindow, this, pwindow->thread->edl->session->time_format == TIME_FEET_FRAMES, x, y)); - x += feet->get_w() + 15; + x += feet->get_w() + xS(15); BC_Title *title; add_subwindow(title = new BC_Title(x, y, _("Frames per foot:"))); x += title->get_w() + margin; sprintf(string, "%0.2f", pwindow->thread->edl->session->frames_per_foot); add_subwindow(new TimeFormatFeetSetting(pwindow, - x, y - 5, string)); + x, y - ys5, string)); x = x0; - y += 20; + y += ys20; add_subwindow(seconds = new TimeFormatSeconds(pwindow, this, pwindow->thread->edl->session->time_format == TIME_SECONDS, x, y)); x = x0; - y += 35; - add_subwindow(new BC_Bar(5, y, get_w()/2 - 30)); - y += 15; + y += ys35; + add_subwindow(new BC_Bar(xs5, y, get_w()/2 - xs30)); + y += ys15; add_subwindow(new BC_Title(x, y, _("Color:"), LARGEFONT, resources->text_default)); - y += 35; + y += ys35; add_subwindow(title = new BC_Title(x, y, _("Highlighting Inversion color:"))); x += title->get_w() + margin; char hex_color[BCSTRLEN]; sprintf(hex_color, "%06x", preferences->highlight_inverse); add_subwindow(new HighlightInverseColor(pwindow, x, y, hex_color)); x2 = x; x = x0; - y += 35; + y += ys35; add_subwindow(title = new BC_Title(x, y, _("Composer BG Color:"))); int clr_color = pwindow->thread->edl->session->cwindow_clear_color; int clr_alpha = pwindow->thread->edl->session->cwindow_clear_alpha; add_subwindow(cwdw_bg_color = new Composer_BG_Color(pwindow, - x2, y, 80, 24, clr_color, clr_alpha)); + x2, y, xS(80), yS(24), clr_color, clr_alpha)); draw_3d_border(x2-2,y-2, 80+4,24+4, 1); cwdw_bg_color->create_objects(); - y += 35; + y += ys35; x = x0; add_subwindow(title = new BC_Title(x, y, _("YUV color space:"))); x += title->get_w() + margin; add_subwindow(yuv_color_space = new YuvColorSpace(x, y, pwindow)); yuv_color_space->create_objects(); - y += yuv_color_space->get_h() + 5; + y += yuv_color_space->get_h() + ys5; x = x0; add_subwindow(title = new BC_Title(x, y, _("YUV color range:"))); x += title->get_w() + margin; add_subwindow(yuv_color_range = new YuvColorRange(x, y, pwindow)); yuv_color_range->create_objects(); - y += yuv_color_range->get_h() + 5; + y += yuv_color_range->get_h() + ys5; UseTipWindow *tip_win = new UseTipWindow(pwindow, x1, y1); add_subwindow(tip_win); - y1 += tip_win->get_h() + 5; + y1 += tip_win->get_h() + ys5; AutocolorAssets *autocolor_assets = new AutocolorAssets(pwindow, x1, y1); add_subwindow(autocolor_assets); - y1 += autocolor_assets->get_h() + 5; + y1 += autocolor_assets->get_h() + ys5; UseWarnIndecies *idx_win = new UseWarnIndecies(pwindow, x1, y1); add_subwindow(idx_win); - y1 += idx_win->get_h() + 5; + y1 += idx_win->get_h() + ys5; UseWarnVersion *ver_win = new UseWarnVersion(pwindow, x1, y1); add_subwindow(ver_win); - y1 += ver_win->get_h() + 5; + y1 += ver_win->get_h() + ys5; BD_WarnRoot *bdwr_win = new BD_WarnRoot(pwindow, x1, y1); add_subwindow(bdwr_win); - y1 += bdwr_win->get_h() + 5; + y1 += bdwr_win->get_h() + ys5; PopupMenuBtnup *pop_win = new PopupMenuBtnup(pwindow, x1, y1); add_subwindow(pop_win); - y1 += pop_win->get_h() + 5; + y1 += pop_win->get_h() + ys5; GrabFocusPolicy *grab_input_focus = new GrabFocusPolicy(pwindow, x1, y1); add_subwindow(grab_input_focus); - y1 += grab_input_focus->get_h() + 5; + y1 += grab_input_focus->get_h() + ys5; ActivateFocusPolicy *focus_activate = new ActivateFocusPolicy(pwindow, x1, y1); add_subwindow(focus_activate); - y1 += focus_activate->get_h() + 5; + y1 += focus_activate->get_h() + ys5; DeactivateFocusPolicy *focus_deactivate = new DeactivateFocusPolicy(pwindow, x1, y1); add_subwindow(focus_deactivate); - y1 += focus_deactivate->get_h() + 5; + y1 += focus_deactivate->get_h() + ys5; ForwardRenderDisplacement *displacement = new ForwardRenderDisplacement(pwindow, x1, y1); add_subwindow(displacement); - y1 += displacement->get_h() + 5; + y1 += displacement->get_h() + ys5; add_subwindow(thumbnails = new ViewThumbnails(x1, y1, pwindow)); - y1 += thumbnails->get_h() + 5; + y1 += thumbnails->get_h() + ys5; PerpetualSession *perpetual = new PerpetualSession(x1, y1, pwindow); add_subwindow(perpetual); - y1 += perpetual->get_h() + 5; + y1 += perpetual->get_h() + ys5; CtrlToggle *ctrl_toggle = new CtrlToggle(x1, y1, pwindow); add_subwindow(ctrl_toggle); - y1 += ctrl_toggle->get_h() + 5; + y1 += ctrl_toggle->get_h() + ys5; RectifyAudioToggle *rect_toggle = new RectifyAudioToggle(x1, y1, pwindow); add_subwindow(rect_toggle); - y1 += rect_toggle->get_h() + 5; + y1 += rect_toggle->get_h() + ys5; if( y < y1 ) y = y1; } @@ -323,7 +326,7 @@ int TimeFormatFeet::handle_event() } TimeFormatFeetSetting::TimeFormatFeetSetting(PreferencesWindow *pwindow, int x, int y, char *string) - : BC_TextBox(x, y, 90, 1, string) + : BC_TextBox(x, y, xS(90), 1, string) { this->pwindow = pwindow; } int TimeFormatFeetSetting::handle_event() @@ -335,7 +338,7 @@ int TimeFormatFeetSetting::handle_event() ViewTheme::ViewTheme(int x, int y, PreferencesWindow *pwindow) - : BC_PopupMenu(x, y, 200, pwindow->thread->preferences->theme, 1) + : BC_PopupMenu(x, y, xS(200), pwindow->thread->preferences->theme, 1) { this->pwindow = pwindow; } @@ -374,7 +377,7 @@ int ViewThemeItem::handle_event() ViewPluginIcons::ViewPluginIcons(int x, int y, PreferencesWindow *pwindow) - : BC_PopupMenu(x, y, 200, pwindow->thread->preferences->plugin_icons, 1) + : BC_PopupMenu(x, y, xS(200), pwindow->thread->preferences->plugin_icons, 1) { this->pwindow = pwindow; } @@ -441,7 +444,7 @@ ViewThumbnailSize::ViewThumbnailSize(PreferencesWindow *pwindow, AppearancePrefs *aprefs, int x, int y) : BC_TumbleTextBox(aprefs, pwindow->thread->preferences->awindow_picon_h, - 16, 512, x, y, 80) + 16, 512, x, y, xS(80)) { this->pwindow = pwindow; @@ -460,7 +463,7 @@ ViewViconSize::ViewViconSize(PreferencesWindow *pwindow, AppearancePrefs *aprefs, int x, int y) : BC_TumbleTextBox(aprefs, pwindow->thread->preferences->vicon_size, - 16, 512, x, y, 80) + 16, 512, x, y, xS(80)) { this->pwindow = pwindow; @@ -476,7 +479,7 @@ int ViewViconSize::handle_event() } ViewViconColorMode::ViewViconColorMode(PreferencesWindow *pwindow, int x, int y) - : BC_PopupMenu(x, y, 100, + : BC_PopupMenu(x, y, xS(100), _(vicon_color_modes[pwindow->thread->preferences->vicon_color_mode]), 1) { this->pwindow = pwindow; @@ -658,7 +661,7 @@ int AutocolorAssets::handle_event() } HighlightInverseColor::HighlightInverseColor(PreferencesWindow *pwindow, int x, int y, const char *hex) - : BC_TextBox(x, y, 80, 1, hex) + : BC_TextBox(x, y, xS(80), 1, hex) { this->pwindow = pwindow; } @@ -684,7 +687,7 @@ const char *YuvColorSpace::color_space[] = { }; YuvColorSpace::YuvColorSpace(int x, int y, PreferencesWindow *pwindow) - : BC_PopupMenu(x, y, 100, + : BC_PopupMenu(x, y, xS(100), _(color_space[pwindow->thread->preferences->yuv_color_space]), 1) { this->pwindow = pwindow; @@ -727,7 +730,7 @@ const char *YuvColorRange::color_range[] = { }; YuvColorRange::YuvColorRange(int x, int y, PreferencesWindow *pwindow) - : BC_PopupMenu(x, y, 100, + : BC_PopupMenu(x, y, xS(100), _(color_range[pwindow->thread->preferences->yuv_color_range]), 1) { this->pwindow = pwindow; diff --git a/cinelerra-5.1/cinelerra/assetedit.C b/cinelerra-5.1/cinelerra/assetedit.C index 609bc0f6..c8ff4a9f 100644 --- a/cinelerra-5.1/cinelerra/assetedit.C +++ b/cinelerra-5.1/cinelerra/assetedit.C @@ -197,13 +197,15 @@ int AssetEdit::window_height() h += 42; } } - return h; + return yS(h); } +#define AEW_W xS(450) + AssetEditWindow::AssetEditWindow(MWindow *mwindow, AssetEdit *asset_edit) : BC_Window(_(PROGRAM_NAME ": Asset Info"), - asset_edit->x - 450/2, asset_edit->y - asset_edit->window_height()/2, - 450, asset_edit->window_height(), 0, 0, 1) + asset_edit->x - AEW_W/2, asset_edit->y - asset_edit->window_height()/2, + AEW_W, asset_edit->window_height(), 0, 0, 1) { this->mwindow = mwindow; this->asset_edit = asset_edit; @@ -235,9 +237,10 @@ AssetEditWindow::~AssetEditWindow() void AssetEditWindow::create_objects() { - int y = 10, x = 10, x1 = 10, x2 = 190; + int xpad10 = xS(10); + int ypad5 = yS(5), ypad10 = yS(10), ypad20 = yS(20), ypad30 = yS(30); + int y = ypad10, x = xpad10, x1 = xpad10, x2 = xS(190); char string[BCTEXTLEN]; - int vmargin; FileSystem fs; BC_Title *title; Asset *asset = 0; @@ -248,23 +251,16 @@ void AssetEditWindow::create_objects() else nested_edl = (EDL*)asset_edit->indexable; - if( asset && asset->format == FILE_PCM ) - allow_edits = 1; - else - allow_edits = 0; - + allow_edits = asset && asset->format == FILE_PCM ? 1 : 0; + int vmargin = yS(allow_edits ? 30 : 20); lock_window("AssetEditWindow::create_objects"); - if( allow_edits ) - vmargin = 30; - else - vmargin = 20; add_subwindow(path_text = new AssetEditPathText(this, y)); add_subwindow(path_button = new AssetEditPath(mwindow, this, path_text, y, asset_edit->indexable->path, _(PROGRAM_NAME ": Asset path"), _("Select a file for this asset:"))); - y += 30; + y += yS(30); if( asset ) { add_subwindow(new BC_Title(x, y, _("File format:"))); @@ -273,7 +269,7 @@ void AssetEditWindow::create_objects() MEDIUMFONT, mwindow->theme->assetedit_color)); x = x1; - y += 20; + y += ypad20; int64_t bytes = fs.get_size(asset->path); add_subwindow(new BC_Title(x, y, _("Bytes:"))); @@ -284,15 +280,15 @@ void AssetEditWindow::create_objects() add_subwindow(new BC_Title(x2, y, string, MEDIUMFONT, mwindow->theme->assetedit_color)); if( asset->format == FILE_MPEG || asset->format == FILE_FFMPEG ) { detail_dialog = new DetailAssetDialog(mwindow); - BC_GenericButton *detail = new DetailAssetButton(this, x2+120, y); + BC_GenericButton *detail = new DetailAssetButton(this, x2+xS(120), y); add_subwindow(detail); } - y += 20; + y += ypad20; x = x1; double length = 0.; - y += 20; + y += ypad20; x = x1; if( asset->audio_length > 0 ) @@ -310,17 +306,17 @@ void AssetEditWindow::create_objects() Units::punctuate(string); add_subwindow(new BC_Title(x2, y, string, MEDIUMFONT, mwindow->theme->assetedit_color)); - y += 30; + y += ypad30; x = x1; } if( (asset && asset->audio_data) || nested_edl ) { add_subwindow(new BC_Bar(x, y, get_w() - x * 2)); - y += 5; + y += ypad5; add_subwindow(new BC_Title(x, y, _("Audio:"), LARGEFONT, RED)); - y += 30; + y += ypad30; if( asset ) { if( asset->get_compression_text(1, 0) ) { @@ -350,7 +346,7 @@ void AssetEditWindow::create_objects() } else { add_subwindow(new BC_Title(x, y, string, MEDIUMFONT, mwindow->theme->assetedit_color)); - y += 20; + y += ypad20; } x = x1; @@ -368,7 +364,7 @@ void AssetEditWindow::create_objects() add_subwindow(new BC_Title(x, y, string, MEDIUMFONT, mwindow->theme->assetedit_color)); } - y += 30; + y += ypad30; x = x1; if( asset ) { @@ -405,14 +401,10 @@ void AssetEditWindow::create_objects() x = x2; add_subwindow(lohi = new AssetEditByteOrderLOHI(this, - asset->byte_order, - x, - y)); - x += 70; + asset->byte_order, x, y)); + x += xS(70); add_subwindow(hilo = new AssetEditByteOrderHILO(this, - !asset->byte_order, - x, - y)); + !asset->byte_order, x, y)); y += vmargin; } else { @@ -437,17 +429,17 @@ void AssetEditWindow::create_objects() add_subwindow(new BC_Title(x, y, _("Values are signed"))); } - y += 30; + y += ypad30; } } x = x1; if( (asset && asset->video_data) || nested_edl ) { add_subwindow(new BC_Bar(x, y, get_w() - x * 2)); - y += 5; + y += ypad5; add_subwindow(new BC_Title(x, y, _("Video:"), LARGEFONT, RED)); - y += 30; + y += ypad30; x = x1; @@ -471,14 +463,14 @@ void AssetEditWindow::create_objects() if( asset ) { BC_TextBox *framerate; add_subwindow(framerate = new AssetEditFRate(this, string, x, y)); - x += 105; + x += framerate->get_w(); add_subwindow(new FrameRatePulldown(mwindow, framerate, x, y)); } else { add_subwindow(new BC_Title(x, y, string, MEDIUMFONT, mwindow->theme->assetedit_color)); } - y += 30; + y += ypad30; x = x1; add_subwindow(new BC_Title(x, y, _("Width:"))); x = x2; @@ -493,17 +485,17 @@ void AssetEditWindow::create_objects() sprintf(string, "%d", asset_edit->changed_params->height); win_height = new BC_Title(x, y, string, MEDIUMFONT, mwindow->theme->assetedit_color); add_subwindow(win_height); - y += win_height->get_h() + 5; + y += win_height->get_h() + ypad5; if( asset && File::can_scale_input(asset) ) { - y += 5; + y += ypad5; x = x1; add_subwindow(new BC_Title(x, y, _("Actual width:"))); x = x2; sprintf(string, "%d", asset->actual_width); add_subwindow(new BC_Title(x, y, string, MEDIUMFONT, mwindow->theme->assetedit_color)); - BC_GenericButton *resize = new ResizeAssetButton(this, x+64, y); + BC_GenericButton *resize = new ResizeAssetButton(this, x+xS(64), y); add_subwindow(resize); y += vmargin; @@ -513,13 +505,13 @@ void AssetEditWindow::create_objects() sprintf(string, "%d", asset->actual_height); title = new BC_Title(x, y, string, MEDIUMFONT, mwindow->theme->assetedit_color); add_subwindow(title); - y += title->get_h() + 5; + y += title->get_h() + ypad5; } if( asset ) { add_subwindow(title = new BC_Title(x1, y, _("Asset's interlacing:"))); ilacemode_to_text(string, asset->interlace_mode); AssetEditILacemode *edit_ilace_mode; - add_subwindow(edit_ilace_mode = new AssetEditILacemode(this, string, x2, y, 160)); + add_subwindow(edit_ilace_mode = new AssetEditILacemode(this, string, x2, y, xS(160))); add_subwindow(new AssetEditInterlacemodePulldown(mwindow, edit_ilace_mode, &asset_edit->changed_params->interlace_mode, (ArrayList*)&mwindow->interlace_asset_modes, @@ -545,13 +537,8 @@ AssetEditChannels::AssetEditChannels(AssetEditWindow *fwindow, char *text, int x, int y) - : BC_TumbleTextBox(fwindow, - (int)atol(text), - (int)1, - (int)MAXCHANNELS, - x, - y, - 50) + : BC_TumbleTextBox(fwindow, (int)atol(text), (int)1, + (int)MAXCHANNELS, x, y, xS(50)) { this->fwindow = fwindow; } @@ -564,7 +551,7 @@ int AssetEditChannels::handle_event() } AssetEditRate::AssetEditRate(AssetEditWindow *fwindow, char *text, int x, int y) - : BC_TextBox(x, y, 100, 1, text) + : BC_TextBox(x, y, xS(100), 1, text) { this->fwindow = fwindow; } @@ -577,7 +564,7 @@ int AssetEditRate::handle_event() } AssetEditFRate::AssetEditFRate(AssetEditWindow *fwindow, char *text, int x, int y) - : BC_TextBox(x, y, 100, 1, text) + : BC_TextBox(x, y, xS(100), 1, text) { this->fwindow = fwindow; } @@ -606,7 +593,7 @@ int AssetEditILacemode::handle_event() AssetEditInterlacemodePulldown::AssetEditInterlacemodePulldown(MWindow *mwindow, BC_TextBox *output_text, int *output_value, ArrayList *data, int x, int y) - : BC_ListBox(x, y, 160, 80, LISTBOX_TEXT, data, 0, 0, 1, 0, 1) + : BC_ListBox(x, y, xS(160), yS(80), LISTBOX_TEXT, data, 0, 0, 1, 0, 1) { this->mwindow = mwindow; this->output_text = output_text; @@ -628,7 +615,7 @@ char* AssetEditInterlacemodePulldown::interlacemode_to_text() } AssetEditHeader::AssetEditHeader(AssetEditWindow *fwindow, char *text, int x, int y) - : BC_TextBox(x, y, 100, 1, text) + : BC_TextBox(x, y, xS(100), 1, text) { this->fwindow = fwindow; } @@ -699,7 +686,7 @@ int AssetEditSigned::handle_event() AssetEditPathText::AssetEditPathText(AssetEditWindow *fwindow, int y) - : BC_TextBox(5, y, 300, 1, fwindow->asset_edit->changed_params->path) + : BC_TextBox(5, y, xS(300), 1, fwindow->asset_edit->changed_params->path) { this->fwindow = fwindow; } @@ -715,7 +702,7 @@ int AssetEditPathText::handle_event() AssetEditPath::AssetEditPath(MWindow *mwindow, AssetEditWindow *fwindow, BC_TextBox *textbox, int y, const char *text, const char *window_title, const char *window_caption) - : BrowseButton(mwindow->theme, fwindow, textbox, 310, y, text, + : BrowseButton(mwindow->theme, fwindow, textbox, yS(310), y, text, window_title, window_caption, 0) { this->fwindow = fwindow; @@ -742,10 +729,13 @@ int DetailAssetButton::handle_event() return 1; } +#define DTL_W xS(600) +#define DTL_H yS(500) + DetailAssetWindow::DetailAssetWindow(MWindow *mwindow, DetailAssetDialog *detail_dialog, Asset *asset) : BC_Window(_("Asset Detail"), - detail_dialog->x - 600/2, detail_dialog->y - 500/2, 600, 500) + detail_dialog->x - DTL_W/2, detail_dialog->y - DTL_H/2, DTL_W, DTL_H) { this->mwindow = mwindow; this->detail_dialog = detail_dialog; @@ -775,7 +765,7 @@ DetailAssetDialog::~DetailAssetDialog() void DetailAssetWindow::create_objects() { - int y = 10, x = 10; + int y = yS(10), x = xS(10); char file_name[BCTEXTLEN]; int len = sizeof(info); strncpy(info,_("no info available"),len); @@ -792,7 +782,9 @@ void DetailAssetWindow::create_objects() } } lock_window("DetailAssetWindow::create_objects"); - text = new BC_ScrollTextBox(this, x, y, get_w()-32, 23, info, -len); + int text_h = get_h()-y - BC_OKButton::calculate_h() - yS(15); + int lines = BC_TextBox::pixels_to_rows(this, MEDIUMFONT, text_h); + text = new BC_ScrollTextBox(this, x, y, get_w()-xS(32), lines, info, -len); text->create_objects(); text->set_text_row(0); add_subwindow(new BC_OKButton(this)); show_window(); diff --git a/cinelerra-5.1/cinelerra/assetpopup.C b/cinelerra-5.1/cinelerra/assetpopup.C index 6b717309..5ff3a07b 100644 --- a/cinelerra-5.1/cinelerra/assetpopup.C +++ b/cinelerra-5.1/cinelerra/assetpopup.C @@ -164,10 +164,11 @@ int AssetPopupInfo::handle_event() popup->gui->get_abs_cursor(cur_x, cur_y); int n = mwindow->session->drag_assets->size(); if( n > 0 ) { + int xs30 = xS(30), ys30 = yS(30); for( int i=0; iawindow->get_asset_editor(); asset_edit->edit_asset( - mwindow->session->drag_assets->values[i], cur_x-30*i, cur_y-30*i); + mwindow->session->drag_assets->values[i], cur_x-xs30*i, cur_y-ys30*i); } } else if( mwindow->session->drag_clips->size() ) { @@ -573,11 +574,13 @@ void AssetCopyDialog::handle_close_event(int result) copy_window = 0; } +#define ACW_W xS(500) +#define ACW_H yS(200) AssetCopyWindow::AssetCopyWindow(AssetCopyDialog *copy_dialog) : BC_Window(_(PROGRAM_NAME ": Copy File List"), - copy_dialog->x - 500/2, copy_dialog->y - 200/2, - 500, 200, 500, 200, 1, 0, 1) + copy_dialog->x - ACW_W/2, copy_dialog->y - ACW_H/2, + ACW_W, ACW_H, ACW_W, ACW_H, 1, 0, 1) { this->copy_dialog = copy_dialog; } @@ -590,11 +593,13 @@ void AssetCopyWindow::create_objects() { lock_window("AssetCopyWindow::create_objects"); BC_Title *title; - int x = 10, y = 10, pad = 5; + int xs10 = xS(10); + int ys5 = yS(5), ys10 = yS(10); + int x = xs10, y = ys10; add_subwindow(title = new BC_Title(x, y, _("List of asset paths:"))); - y += title->get_h() + pad; + y += title->get_h() + ys5; int text_w = get_w() - x - 10; - int text_h = get_h() - y - BC_OKButton::calculate_h() - pad; + int text_h = get_h() - y - BC_OKButton::calculate_h() - ys5; int text_rows = BC_TextBox::pixels_to_rows(this, MEDIUMFONT, text_h); char *text = copy_dialog->text; int len = strlen(text) + BCTEXTLEN; @@ -608,9 +613,9 @@ void AssetCopyWindow::create_objects() int AssetCopyWindow::resize_event(int w, int h) { - int fx = file_list->get_x(), fy = file_list->get_y(), pad = 5; - int text_w = w - fx - 10; - int text_h = h - fy - BC_OKButton::calculate_h() - pad; + int fx = file_list->get_x(), fy = file_list->get_y(); + int text_w = w - fx - xS(10); + int text_h = h - fy - BC_OKButton::calculate_h() - yS(5); int text_rows = BC_TextBox::pixels_to_rows(this, MEDIUMFONT, text_h); file_list->reposition_window(fx, fy, text_w, text_rows); return 0; @@ -701,10 +706,13 @@ void AssetPasteDialog::start(int x, int y) BC_DialogThread::start(); } +#define APW_W xS(500) +#define APW_H yS(200) + AssetPasteWindow::AssetPasteWindow(AssetPasteDialog *paste_dialog) : BC_Window(_(PROGRAM_NAME ": Paste File List"), - paste_dialog->x - 500/2, paste_dialog->y - 200/2, - 500, 200, 500, 200, 1, 0, 1) + paste_dialog->x - APW_W/2, paste_dialog->y - APW_H/2, + APW_W, APW_H, APW_W, APW_H, 1, 0, 1) { this->paste_dialog = paste_dialog; } @@ -717,11 +725,13 @@ void AssetPasteWindow::create_objects() { lock_window("AssetPasteWindow::create_objects()"); BC_Title *title; - int x = 10, y = 10, pad = 5; + int xs10 = xS(10); + int ys5 = yS(5), ys10 = yS(10); + int x = xs10, y = ys10; add_subwindow(title = new BC_Title(x, y, _("Enter list of asset paths:"))); - y += title->get_h() + pad; - int text_w = get_w() - x - 10; - int text_h = get_h() - y - BC_OKButton::calculate_h() - pad; + y += title->get_h() + ys5; + int text_w = get_w() - x - xs10; + int text_h = get_h() - y - BC_OKButton::calculate_h() - ys5; int text_rows = BC_TextBox::pixels_to_rows(this, MEDIUMFONT, text_h); file_list = new BC_ScrollTextBox(this, x, y, text_w, text_rows, (char*)0, 65536); file_list->create_objects(); @@ -733,9 +743,9 @@ void AssetPasteWindow::create_objects() int AssetPasteWindow::resize_event(int w, int h) { - int fx = file_list->get_x(), fy = file_list->get_y(), pad = 5; - int text_w = w - fx - 10; - int text_h = h - fy - BC_OKButton::calculate_h() - pad; + int fx = file_list->get_x(), fy = file_list->get_y(); + int text_w = w - fx - xS(10); + int text_h = h - fy - BC_OKButton::calculate_h() - yS(5); int text_rows = BC_TextBox::pixels_to_rows(this, MEDIUMFONT, text_h); file_list->reposition_window(fx, fy, text_w, text_rows); return 0; diff --git a/cinelerra-5.1/cinelerra/assetremove.C b/cinelerra-5.1/cinelerra/assetremove.C index 49e82414..564c18cf 100644 --- a/cinelerra-5.1/cinelerra/assetremove.C +++ b/cinelerra-5.1/cinelerra/assetremove.C @@ -32,13 +32,7 @@ AssetRemoveWindow::AssetRemoveWindow(MWindow *mwindow) : BC_Window(_(PROGRAM_NAME ": Remove assets"), mwindow->gui->get_abs_cursor_x(1), mwindow->gui->get_abs_cursor_y(1), - 320, - 400, - -1, - -1, - 0, - 0, - 1) + xS(320), yS(400), -1, -1, 0, 0, 1) { this->mwindow = mwindow; data = 0; @@ -54,7 +48,7 @@ AssetRemoveWindow::~AssetRemoveWindow() void AssetRemoveWindow::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); int margin = mwindow->theme->widget_border; data = new ArrayList; diff --git a/cinelerra-5.1/cinelerra/auto.C b/cinelerra-5.1/cinelerra/auto.C index f1cf457d..4171fa83 100644 --- a/cinelerra-5.1/cinelerra/auto.C +++ b/cinelerra-5.1/cinelerra/auto.C @@ -30,8 +30,8 @@ Auto::Auto() this->autos = 0; position = 0; skip = 0; - WIDTH = 10; - HEIGHT = 10; + WIDTH = xS(10); + HEIGHT = yS(10); is_default = 0; } @@ -42,8 +42,8 @@ Auto::Auto(EDL *edl, Autos *autos) this->autos = autos; position = 0; skip = 0; - WIDTH = 10; - HEIGHT = 10; + WIDTH = xS(10); + HEIGHT = yS(10); is_default = 0; } diff --git a/cinelerra-5.1/cinelerra/avc1394transport.C b/cinelerra-5.1/cinelerra/avc1394transport.C index 7ff3a509..ba961769 100644 --- a/cinelerra-5.1/cinelerra/avc1394transport.C +++ b/cinelerra-5.1/cinelerra/avc1394transport.C @@ -111,7 +111,7 @@ void AVC1394Transport::create_objects() window->add_subwindow(end_button = new AVC1394GUISeekEnd(mwindow, avc, x, y)); x += end_button->get_w(); - x_end = x + 10; + x_end = x + xS(10); } @@ -156,7 +156,7 @@ void AVC1394Transport::reposition_window(int x, int y) x += fforward_button->get_w(); end_button->reposition_window(x, y); - x_end = x + 10; + x_end = x + xS(10); } diff --git a/cinelerra-5.1/cinelerra/awindowgui.C b/cinelerra-5.1/cinelerra/awindowgui.C index f668ee51..03c8f221 100644 --- a/cinelerra-5.1/cinelerra/awindowgui.C +++ b/cinelerra-5.1/cinelerra/awindowgui.C @@ -1258,7 +1258,7 @@ AWindowGUI::AWindowGUI(MWindow *mwindow, AWindow *awindow) : BC_Window(_(PROGRAM_NAME ": Resources"), mwindow->session->awindow_x, mwindow->session->awindow_y, mwindow->session->awindow_w, mwindow->session->awindow_h, - 100, 100, 1, 1, 1) + xS(100), yS(100), 1, 1, 1) { this->mwindow = mwindow; this->awindow = awindow; @@ -1422,6 +1422,7 @@ void AWindowGUI::plugin_icon(VFrame *&vfrm, BC_Pixmap *&icon, const char *fn, un void AWindowGUI::create_objects() { + int ys5 = yS(5), ys10 = yS(10); lock_window("AWindowGUI::create_objects"); asset_titles[0] = C_("Title"); asset_titles[1] = _("Comments"); @@ -1482,9 +1483,9 @@ void AWindowGUI::create_objects() int x1 = mwindow->theme->alist_x, y1 = mwindow->theme->alist_y; int w1 = mwindow->theme->alist_w, h1 = mwindow->theme->alist_h; - search_text = new AWindowSearchText(mwindow, this, x1, y1+5); + search_text = new AWindowSearchText(mwindow, this, x1, y1+ys5); search_text->create_objects(); - int dy = search_text->get_h() + 10; + int dy = search_text->get_h() + ys10; y1 += dy; h1 -= dy; add_subwindow(asset_list = new AWindowAssets(mwindow, this, x1, y1, w1, h1)); @@ -1507,7 +1508,7 @@ void AWindowGUI::create_objects() int nw = get_text_width(MEDIUMFONT, _(av_names[i])); if( tw < nw ) tw = nw; } - int pw = BC_PopupMenu::calculate_w(16, tw, 1); + int pw = BC_PopupMenu::calculate_w(xS(16), tw, 1); const char *text = _(AVIconDrawing::avicon_names[vicon_drawing]); add_subwindow(avicon_drawing = new AVIconDrawing(this, fw, fy, pw, text)); avicon_drawing->create_objects(); @@ -1596,10 +1597,11 @@ int AWindowGUI::translation_event() void AWindowGUI::reposition_objects() { + int ys5 = yS(5), ys10 = yS(10); int x1 = mwindow->theme->alist_x, y1 = mwindow->theme->alist_y; int w1 = mwindow->theme->alist_w, h1 = mwindow->theme->alist_h; - search_text->reposition_window(x1, y1+5, w1); - int dy = search_text->get_h() + 10; + search_text->reposition_window(x1, y1+ys5, w1); + int dy = search_text->get_h() + ys10; y1 += dy; h1 -= dy; asset_list->reposition_window(x1, y1, w1, h1); divider->reposition_window( @@ -1738,7 +1740,9 @@ void AWindowGUI::hide_tip_info() AWindowRemovePluginGUI:: AWindowRemovePluginGUI(AWindow *awindow, AWindowRemovePlugin *thread, int x, int y, PluginServer *plugin) - : BC_Window(_(PROGRAM_NAME ": Remove plugin"), x,y, 500,200, 50, 50, 1, 0, 1, -1, "", 1) + : BC_Window(_(PROGRAM_NAME ": Remove plugin"), x,y, + xS(500),yS(200), xS(50), yS(50), + 1, 0, 1, -1, "", 1) { this->awindow = awindow; this->thread = thread; @@ -1758,17 +1762,19 @@ AWindowRemovePluginGUI:: void AWindowRemovePluginGUI::create_objects() { + int xs10 = xS(10), xs20 = xS(20); + int ys5 = yS(5), ys10 = yS(10); lock_window("AWindowRemovePluginGUI::create_objects"); BC_Button *ok_button = new BC_OKButton(this); add_subwindow(ok_button); BC_Button *cancel_button = new BC_CancelButton(this); add_subwindow(cancel_button); - int x = 10, y = 10; + int x = xs10, y = ys10; BC_Title *title = new BC_Title(x, y, _("remove plugin?")); add_subwindow(title); - y += title->get_h() + 5; + y += title->get_h() + ys5; list = new BC_ListBox(x, y, - get_w() - 20, ok_button->get_y() - y - 5, LISTBOX_TEXT, &plugin_list, + get_w() - xs20, ok_button->get_y() - y - ys5, LISTBOX_TEXT, &plugin_list, 0, 0, 1, 0, 0, LISTBOX_SINGLE, ICON_LEFT, 0); add_subwindow(list); show_window(); @@ -2496,7 +2502,7 @@ int AWindowDivider::button_press_event() int AWindowDivider::cursor_motion_event() { if( mwindow->session->current_operation == DRAG_PARTITION ) { - int wmin = 25; + int wmin = xS(25); int wmax = mwindow->session->awindow_w - mwindow->theme->adivider_w - wmin; int fw = gui->get_relative_cursor_x(); if( fw > wmax ) fw = wmax; @@ -2887,7 +2893,7 @@ void AWindowAssets::draw_background() set_font(LARGEFONT); int folder = mwindow->edl->session->awindow_folder; const char *title = mwindow->edl->get_folder_name(folder); - draw_text(get_w() - get_text_width(LARGEFONT, title) - 4, 30, + draw_text(get_w() - get_text_width(LARGEFONT, title) - xS(4), yS(30), title, -1, get_bg_surface()); } @@ -3129,11 +3135,10 @@ int AWindowAssets::mouse_over_event(int no) void AWindowAssets::show_tip_info(const char *info, int no) { - int margin = 28; int tw = get_text_width(MEDIUMFONT, info) + TOOLTIP_MARGIN * 2; int th = get_text_height(MEDIUMFONT, info) + TOOLTIP_MARGIN * 2; - int tx = get_w() - (tw + margin); - int ty = get_h() - (th + margin); + int tx = get_w() - (tw + xS(28)); + int ty = get_h() - (th + yS(28)); show_tooltip(info, tx, ty, tw, th); info_tip = no; } @@ -3166,10 +3171,11 @@ AWindowSearchText::AWindowSearchText(MWindow *mwindow, AWindowGUI *gui, int x, i void AWindowSearchText::create_objects() { - int x1 = x, y1 = y, margin = 10; + int xs10 = xS(10); + int x1 = x, y1 = y; gui->add_subwindow(text_title = new BC_Title(x1, y1, _("Search:"))); - x1 += text_title->get_w() + margin; - int w1 = gui->get_w() - x1 - 2*margin; + x1 += text_title->get_w() + xs10; + int w1 = gui->get_w() - x1 - 2*xs10; gui->add_subwindow(text_box = new AWindowSearchTextBox(this, x1, y1, w1)); } @@ -3181,7 +3187,7 @@ int AWindowSearchText::handle_event() int AWindowSearchText::get_w() { - return text_box->get_w() + text_title->get_w() + 10; + return text_box->get_w() + text_title->get_w() + xS(10); } int AWindowSearchText::get_h() @@ -3191,10 +3197,11 @@ int AWindowSearchText::get_h() void AWindowSearchText::reposition_window(int x, int y, int w) { - int x1 = x, y1 = y, margin = 10; + int xs10 = xS(10); + int x1 = x, y1 = y; text_title->reposition_window(x1, y1); - x1 += text_title->get_w() + margin; - int w1 = gui->get_w() - x1 - 2*margin; + x1 += text_title->get_w() + xs10; + int w1 = gui->get_w() - x1 - 2*xs10; text_box->reposition_window(x1, y1, w1); } diff --git a/cinelerra-5.1/cinelerra/batchrender.C b/cinelerra-5.1/cinelerra/batchrender.C index 6f1129f0..734ee3aa 100644 --- a/cinelerra-5.1/cinelerra/batchrender.C +++ b/cinelerra-5.1/cinelerra/batchrender.C @@ -316,7 +316,7 @@ void BatchRenderThread::load_defaults(BC_Hash *defaults) for( int i = 0; i < BATCHRENDER_COLUMNS; i++ ) { char string[BCTEXTLEN]; sprintf(string, "BATCHRENDER_COLUMN%d", i); - list_width[i] = defaults->get(string, column_widths[i]); + list_width[i] = defaults->get(string, xS(column_widths[i])); } } @@ -724,7 +724,7 @@ void BatchRenderThread::trap_hook(FILE *fp, void *vp) BatchRenderGUI::BatchRenderGUI(MWindow *mwindow, BatchRenderThread *thread, int x, int y, int w, int h) : BC_Window(_(PROGRAM_NAME ": Batch Render"), - x, y, w, h, 730, 400, 1, 0, 1) + x, y, w, h, xS(730), yS(400), 1, 0, 1) { this->mwindow = mwindow; this->thread = thread; @@ -743,21 +743,23 @@ BatchRenderGUI::~BatchRenderGUI() void BatchRenderGUI::create_objects() { + int xs10 = xS(10), xs30 = xS(30), xs40 = xS(40); + int ys5 = yS(5), ys10 = yS(10), ys15 = yS(15); lock_window("BatchRenderGUI::create_objects"); mwindow->theme->get_batchrender_sizes(this, get_w(), get_h()); create_list(0); int x = mwindow->theme->batchrender_x1; - int y = 5; - int x1 = x, x2 = get_w()/2 + 30; // mwindow->theme->batchrender_x2; - int y1 = 5, y2 = 5; + int y = ys5; + int x1 = x, x2 = get_w()/2 + xs30; // mwindow->theme->batchrender_x2; + int y1 = ys5, y2 = ys5; // output file add_subwindow(output_path_title = new BC_Title(x1, y1, _("Output path:"))); y1 += output_path_title->get_h() + mwindow->theme->widget_border; format_tools = new BatchFormat(mwindow, this, thread->get_current_asset()); - format_tools->set_w(x2 - 40); + format_tools->set_w(x2 - xs40); BatchRenderJob *current_job = thread->get_current_job(); format_tools->create_objects(x1, y1, 1, 1, 1, 1, 0, 1, 0, 0, thread->do_labeled ? ¤t_job->labeled : 0, 0); @@ -767,7 +769,7 @@ void BatchRenderGUI::create_objects() use_renderfarm = new BatchRenderUseFarm(thread, x1, y1, ¤t_job->farmed); add_subwindow(use_renderfarm); - y1 += use_renderfarm->get_h() + 10; + y1 += use_renderfarm->get_h() + ys10; if( thread->do_farmed < 0 ) use_renderfarm->disable(); } @@ -778,7 +780,7 @@ void BatchRenderGUI::create_objects() x = x2; y = y2; add_subwindow(edl_path_text = new BatchRenderEDLPath( thread, - x, y, get_w()-x - 40, thread->get_current_edl())); + x, y, get_w()-x - xs40, thread->get_current_edl())); x = x2 + edl_path_text->get_w(); add_subwindow(edl_path_browse = new BrowseButton( mwindow->theme, this, edl_path_text, x, y, thread->get_current_edl(), @@ -809,15 +811,15 @@ void BatchRenderGUI::create_objects() add_subwindow(batch_path = new BC_Title(x1, y, thread->batch_path, MEDIUMFONT)); y += list_title->get_h() + mwindow->theme->widget_border; y1 = get_h(); - y1 -= 15 + BC_GenericButton::calculate_h() + mwindow->theme->widget_border; + y1 -= ys15 + BC_GenericButton::calculate_h() + mwindow->theme->widget_border; add_subwindow(batch_list = new BatchRenderList(thread, x, y, - get_w() - x - 10, y1 - y)); + get_w() - x - xs10, y1 - y)); y += batch_list->get_h() + mwindow->theme->widget_border; add_subwindow(start_button = new BatchRenderStart(thread, x, y)); x = get_w() / 2 - BC_GenericButton::calculate_w(this, _("Stop")) / 2; add_subwindow(stop_button = new BatchRenderStop(thread, x, y)); - x = get_w() - BC_GenericButton::calculate_w(this, _("Close")) - 10; + x = get_w() - BC_GenericButton::calculate_w(this, _("Close")) - xs10; add_subwindow(cancel_button = new BatchRenderCancel(thread, x, y)); show_window(1); @@ -843,14 +845,16 @@ void BatchRenderGUI::button_enable() int BatchRenderGUI::resize_event(int w, int h) { + int xs10 = xS(10), xs40 = xS(40); + int ys5 = yS(5), ys15 = yS(15); mwindow->session->batchrender_w = w; mwindow->session->batchrender_h = h; mwindow->theme->get_batchrender_sizes(this, w, h); int x = mwindow->theme->batchrender_x1; - int y = 5; - int x1 = x, x2 = get_w()/2 + 10; // mwindow->theme->batchrender_x2; - int y1 = 5, y2 = 5; + int y = ys5; + int x1 = x, x2 = get_w()/2 + xs10; // mwindow->theme->batchrender_x2; + int y1 = ys5, y2 = ys5; // output file output_path_title->reposition_window(x1, y1); @@ -862,7 +866,7 @@ int BatchRenderGUI::resize_event(int w, int h) x = x2, y = y2; edl_path_title->reposition_window(x, y); y += edl_path_title->get_h() + mwindow->theme->widget_border; - edl_path_text->reposition_window(x, y, w - x - 40); + edl_path_text->reposition_window(x, y, w - x - xs40); x += edl_path_text->get_w(); edl_path_browse->reposition_window(x, y); y2 = y + edl_path_browse->get_h() + mwindow->theme->widget_border; @@ -883,20 +887,20 @@ int BatchRenderGUI::resize_event(int w, int h) y += loadlist_batch->get_h() + mwindow->theme->widget_border; warning->reposition_window(x2, y); - y1 = 15 + BC_GenericButton::calculate_h() + mwindow->theme->widget_border; + y1 = ys15 + BC_GenericButton::calculate_h() + mwindow->theme->widget_border; y2 = get_h() - y1 - batch_list->get_h(); y2 -= list_title->get_h() + mwindow->theme->widget_border; x = mwindow->theme->batchrender_x1; y = y2; list_title->reposition_window(x, y); y += list_title->get_h() + mwindow->theme->widget_border; - batch_list->reposition_window(x, y, w - x - 10, h - y - y1); + batch_list->reposition_window(x, y, w - x - xs10, h - y - y1); y += batch_list->get_h() + mwindow->theme->widget_border; start_button->reposition_window(x, y); x = w / 2 - stop_button->get_w() / 2; stop_button->reposition_window(x, y); - x = w - cancel_button->get_w() - 10; + x = w - cancel_button->get_w() - xs10; cancel_button->reposition_window(x, y); return 1; } @@ -1103,7 +1107,8 @@ void BatchRenderSaveList::run() char default_path[BCTEXTLEN]; sprintf(default_path, "~"); thread->mwindow->defaults->get("DEFAULT_BATCHLOADPATH", default_path); - BC_FileBox filewindow(100, 100, default_path, _("Save Batch Render List"), + BC_FileBox filewindow(xS(100), yS(100), default_path, + _("Save Batch Render List"), _("Enter a Batch Render filename to save as:"), 0, 0, 0, 0); gui = &filewindow; @@ -1181,7 +1186,7 @@ void BatchRenderLoadList::run() char default_path[BCTEXTLEN]; sprintf(default_path, "~"); thread->mwindow->defaults->get("DEFAULT_BATCHLOADPATH", default_path); - BC_FileBox filewindow(100, 100, default_path, _("Load Batch Render List"), + BC_FileBox filewindow(xS(100), yS(100), default_path, _("Load Batch Render List"), _("Enter a Batch Render filename to load from:"), 0, 0, 0, 0); gui = &filewindow; diff --git a/cinelerra-5.1/cinelerra/bdcreate.C b/cinelerra-5.1/cinelerra/bdcreate.C index 6ebaa967..5251979e 100644 --- a/cinelerra-5.1/cinelerra/bdcreate.C +++ b/cinelerra-5.1/cinelerra/bdcreate.C @@ -478,7 +478,7 @@ BC_Window* CreateBD_Thread::new_gui() int scr_x = mwindow->gui->get_screen_x(0, -1); int scr_w = mwindow->gui->get_screen_w(0, -1); int scr_h = mwindow->gui->get_screen_h(0, -1); - int w = 500, h = 290; + int w = xS(500), h = yS(290); int x = scr_x + scr_w/2 - w/2, y = scr_h/2 - h/2; gui = new CreateBD_GUI(this, x, y, w, h); @@ -709,7 +709,7 @@ CreateBD_WideAudio::~CreateBD_WideAudio() CreateBD_GUI::CreateBD_GUI(CreateBD_Thread *thread, int x, int y, int w, int h) - : BC_Window(_(PROGRAM_NAME ": Create BD"), x, y, w, h, 50, 50, 1, 0, 1) + : BC_Window(_(PROGRAM_NAME ": Create BD"), x, y, w, h, xS(50), yS(50), 1, 0, 1) { this->thread = thread; at_x = at_y = tmp_x = tmp_y = 0; @@ -739,20 +739,23 @@ CreateBD_GUI::~CreateBD_GUI() void CreateBD_GUI::create_objects() { + int xs10 = xS(10), xs30 = xS(30), xs35 = xS(35); + int xs160 = xS(160), xs170 = xS(170); + int ys5 = yS(5), ys10 = yS(10); lock_window("CreateBD_GUI::create_objects"); - int pady = BC_TextBox::calculate_h(this, MEDIUMFONT, 0, 1) + 5; + int pady = BC_TextBox::calculate_h(this, MEDIUMFONT, 0, 1) + ys5; int padx = BC_Title::calculate_w(this, (char*)"X", MEDIUMFONT); int x = padx/2, y = pady/2; BC_Title *title = new BC_Title(x, y, _("Title:"), MEDIUMFONT, YELLOW); add_subwindow(title); at_x = x + title->get_w(); at_y = y; - asset_title = new CreateBD_AssetTitle(this, at_x, at_y, get_w()-at_x-10); + asset_title = new CreateBD_AssetTitle(this, at_x, at_y, get_w()-at_x-xs10); add_subwindow(asset_title); y += title->get_h() + pady/2; title = new BC_Title(x, y, _("Work path:"), MEDIUMFONT, YELLOW); add_subwindow(title); tmp_x = x + title->get_w(); tmp_y = y; - tmp_path = new CreateBD_TmpPath(this, tmp_x, tmp_y, get_w()-tmp_x-35); + tmp_path = new CreateBD_TmpPath(this, tmp_x, tmp_y, get_w()-tmp_x-xs35); add_subwindow(tmp_path); btmp_path = new BrowseButton(thread->mwindow->theme, this, tmp_path, tmp_x+tmp_path->get_w(), tmp_y, "/tmp", @@ -761,7 +764,7 @@ void CreateBD_GUI::create_objects() y += title->get_h() + pady/2; disk_space = new CreateBD_DiskSpace(this, x, y); add_subwindow(disk_space); - int x0 = get_w() - 170; + int x0 = get_w() - xs170; title = new BC_Title(x0, y, _("Media:"), MEDIUMFONT, YELLOW); add_subwindow(title); int x1 = x0+title->get_w()+padx; @@ -779,7 +782,7 @@ void CreateBD_GUI::create_objects() add_subwindow(standard); standard->create_objects(); standard->set_text(bd_formats[thread->use_standard].name); - x0 -= 30; + x0 -= xs30; title = new BC_Title(x0, y, _("Scale:"), MEDIUMFONT, YELLOW); add_subwindow(title); x1 = x0+title->get_w()+padx; @@ -794,9 +797,9 @@ void CreateBD_GUI::create_objects() need_histogram = new CreateBD_Histogram(this, x1, y); add_subwindow(need_histogram); y += need_histogram->get_h() + pady/2; - non_standard = new BC_Title(x1, y+5, "", MEDIUMFONT, RED); + non_standard = new BC_Title(x1, y+ys5, "", MEDIUMFONT, RED); add_subwindow(non_standard); - x1 += 160; y = y1; + x1 += xs160; y = y1; need_inverse_telecine = new CreateBD_InverseTelecine(this, x1, y); add_subwindow(need_inverse_telecine); y += need_inverse_telecine->get_h() + pady/2; @@ -805,7 +808,7 @@ void CreateBD_GUI::create_objects() y += need_wide_audio->get_h() + pady/2; need_resize_tracks = new CreateBD_ResizeTracks(this, x1, y); add_subwindow(need_resize_tracks); - x1 += 160; y = y1; + x1 += xs160; y = y1; need_labeled = new CreateBD_LabelChapters(this, x1, y); add_subwindow(need_labeled); y += need_labeled->get_h() + pady/2; @@ -813,14 +816,14 @@ void CreateBD_GUI::create_objects() add_subwindow(need_farmed); ok_w = BC_OKButton::calculate_w(); ok_h = BC_OKButton::calculate_h(); - ok_x = 10; - ok_y = get_h() - ok_h - 10; + ok_x = xs10; + ok_y = get_h() - ok_h - xs10; ok = new CreateBD_OK(this, ok_x, ok_y); add_subwindow(ok); cancel_w = BC_CancelButton::calculate_w(); cancel_h = BC_CancelButton::calculate_h(); - cancel_x = get_w() - cancel_w - 10, - cancel_y = get_h() - cancel_h - 10; + cancel_x = get_w() - cancel_w - xs10, + cancel_y = get_h() - cancel_h - ys10; cancel = new CreateBD_Cancel(this, cancel_x, cancel_y); add_subwindow(cancel); show_window(); @@ -829,13 +832,15 @@ void CreateBD_GUI::create_objects() int CreateBD_GUI::resize_event(int w, int h) { - asset_title->reposition_window(at_x, at_y, get_w()-at_x-10); - tmp_path->reposition_window(tmp_x, tmp_y, get_w()-tmp_x-35); + int xs10 = xS(10), xs35 = xS(35); + int ys10 = yS(10); + asset_title->reposition_window(at_x, at_y, get_w()-at_x-xs10); + tmp_path->reposition_window(tmp_x, tmp_y, get_w()-tmp_x-xs35); btmp_path->reposition_window(tmp_x+tmp_path->get_w(), tmp_y); - ok_y = h - ok_h - 10; + ok_y = h - ok_h - ys10; ok->reposition_window(ok_x, ok_y); - cancel_x = w - cancel_w - 10, - cancel_y = h - cancel_h - 10; + cancel_x = w - cancel_w - xs10, + cancel_y = h - cancel_h - ys10; cancel->reposition_window(cancel_x, cancel_y); return 0; } @@ -1018,7 +1023,7 @@ int CreateBD_FormatItem::handle_event() CreateBD_Format::CreateBD_Format(CreateBD_GUI *gui, int x, int y) - : BC_PopupMenu(x, y, 180, bd_formats[gui->thread->use_standard].name, 1) + : BC_PopupMenu(x, y, xS(180), bd_formats[gui->thread->use_standard].name, 1) { this->gui = gui; } @@ -1073,7 +1078,7 @@ int CreateBD_ScaleItem::handle_event() CreateBD_Scale::CreateBD_Scale(CreateBD_GUI *gui, int x, int y) - : BC_PopupMenu(x, y, 100, "", 1) + : BC_PopupMenu(x, y, xS(100), "", 1) { this->gui = gui; } @@ -1099,7 +1104,7 @@ int CreateBD_Scale::handle_event() CreateBD_MediaSize::CreateBD_MediaSize(CreateBD_GUI *gui, int x, int y) - : BC_PopupTextBox(gui, 0, 0, x, y, 70,50) + : BC_PopupTextBox(gui, 0, 0, x, y, xS(70),yS(50)) { this->gui = gui; } diff --git a/cinelerra-5.1/cinelerra/binfolder.C b/cinelerra-5.1/cinelerra/binfolder.C index e8a8411d..4dfc2f89 100644 --- a/cinelerra-5.1/cinelerra/binfolder.C +++ b/cinelerra-5.1/cinelerra/binfolder.C @@ -826,7 +826,7 @@ BinFolderTargetPatterns::~BinFolderTargetPatterns() { delete [] text; } - + void BinFolderTargetPatterns::save_xml(FileXML *file) {} void BinFolderTargetPatterns::load_xml(FileXML *file) {} @@ -1458,10 +1458,10 @@ void BinFolderList::create_objects() list_titles[FOLDER_COLUMN_TARGET] = _("Target"); list_titles[FOLDER_COLUMN_OP] = _("Op"); list_titles[FOLDER_COLUMN_VALUE] = _("Value"); - list_width[FOLDER_COLUMN_ENABLE] = 80; - list_width[FOLDER_COLUMN_TARGET] = 80; - list_width[FOLDER_COLUMN_OP] = 50; - list_width[FOLDER_COLUMN_VALUE] = 180; + list_width[FOLDER_COLUMN_ENABLE] = xS(80); + list_width[FOLDER_COLUMN_TARGET] = xS(80); + list_width[FOLDER_COLUMN_OP] = xS(50); + list_width[FOLDER_COLUMN_VALUE] = xS(180); load_defaults(mwindow->defaults); create_list(); add_subwindow(enabled_popup = new BinFolderEnabledPopup(this)); @@ -1524,11 +1524,11 @@ int BinFolderList::selection_changed() break; case FOLDER_COLUMN_VALUE: { modify_target->close_window(); - int cw = filter->target->type == FOLDER_TARGET_PATTERNS ? 400 : 320; - int ch = filter->target->type == FOLDER_TARGET_PATTERNS ? 300 : 120; + int cw = xS(filter->target->type == FOLDER_TARGET_PATTERNS ? 400 : 320); + int ch = yS(filter->target->type == FOLDER_TARGET_PATTERNS ? 300 : 120); int cx, cy; get_abs_cursor(cx, cy); - if( (cx-=cw/2) < 50 ) cx = 50; - if( (cy-=ch/2) < 50 ) cy = 50; + if( (cx-=cw/2) < xS(50) ) cx = xS(50); + if( (cy-=ch/2) < yS(50) ) cy = yS(50); modify_target->start(filter->target, cx, cy, cw, ch); break; } } @@ -1671,7 +1671,7 @@ int BinFolderApplyFilter::handle_event() NewFolderGUI::NewFolderGUI(NewFolderThread *thread, int x, int y, int w, int h) : BC_Window(_(PROGRAM_NAME ": New folder"), - x, y, w, h, -1, -1, 0, 0, 1) + x, y, xS(w), yS(h), -1, -1, 0, 0, 1) { this->thread = thread; } @@ -1682,13 +1682,15 @@ NewFolderGUI::~NewFolderGUI() void NewFolderGUI::create_objects() { + int xs10 = xS(10); + int ys5 = yS(5), ys10 = yS(10); lock_window("NewFolderGUI::create_objects"); - int x = 10, y = 10; + int x = xs10, y = ys10; BC_Title *title; add_subwindow(title = new BC_Title(x, y, _("Folder name:"))); - y += title->get_h() + 5; + y += title->get_h() + ys5; const char *text = !thread->is_clips ? _("media bin") : _("clip bin"); - add_subwindow(text_box = new BC_TextBox(x, y, 300, 1, text)); + add_subwindow(text_box = new BC_TextBox(x, y, xS(300), 1, text)); add_subwindow(new BC_OKButton(this)); add_subwindow(new BC_CancelButton(this)); show_window(); @@ -1743,7 +1745,7 @@ void NewFolderThread::handle_close_event(int result) } ModifyFolderGUI::ModifyFolderGUI(ModifyFolderThread *thread, int x, int y, int w, int h) - : BC_Window(_(PROGRAM_NAME ": Modify folder"), x, y, w, h, 320, 200, 1, 0, 1) + : BC_Window(_(PROGRAM_NAME ": Modify folder"), x, y, w, h, xS(320), yS(200), 1, 0, 1) { this->thread = thread; } @@ -1771,28 +1773,30 @@ void ModifyFolderGUI::async_update_filters() void ModifyFolderGUI::create_objects() { + int xs10 = xS(10), xs15 = xS(15); + int ys10 = yS(10), ys30 = yS(30); lock_window("ModifyFolderGUI::create_objects"); modify_folder_xatom = create_xatom("CWINDOWGUI_UPDATE_FILTERS"); - int x = 10, y = 10; + int x = xs10, y = ys10; BC_Title *title; add_subwindow(title = new BC_Title(x, y, _("Enter the name of the folder:"))); const char *text = !thread->folder->is_clips ? _("Media") : _("Clips"); int tw = BC_Title::calculate_w(this, text, LARGEFONT); - int x0 = get_w() - 50 - tw; + int x0 = get_w() - xS(50) - tw; add_subwindow(text_title = new BC_Title(x0, y, text, LARGEFONT, YELLOW)); - y += title->get_h() + 10; - add_subwindow(text_box = new BC_TextBox(x, y, 300, 1, thread->folder->title)); - y += text_box->get_h() + 10; - int lh = get_h() - y - BC_OKButton::calculate_h() - 30; - int lw = get_w() - x - 160; + y += title->get_h() + ys10; + add_subwindow(text_box = new BC_TextBox(x, y, xS(300), 1, thread->folder->title)); + y += text_box->get_h() + ys10; + int lh = get_h() - y - BC_OKButton::calculate_h() - ys30; + int lw = get_w() - x - xS(160); add_subwindow(folder_list = new BinFolderList(thread->folder, thread->agui->mwindow, this, x, y, lw, lh)); folder_list->create_objects(); - int x1 = x + folder_list->get_w() + 15, y1 = y; + int x1 = x + folder_list->get_w() + xs15, y1 = y; add_subwindow(add_filter = new BinFolderAddFilter(folder_list, x1, y1)); - y1 += add_filter->get_h() + 10; + y1 += add_filter->get_h() + ys10; add_subwindow(del_filter = new BinFolderDelFilter(folder_list, x1, y1)); - y1 += del_filter->get_h() + 10; + y1 += del_filter->get_h() + ys10; add_subwindow(apply_filter = new BinFolderApplyFilter(folder_list, x1, y1)); add_subwindow(ok_button = new BC_OKButton(this)); add_subwindow(cancel_button = new BC_CancelButton(this)); @@ -1810,10 +1814,10 @@ int ModifyFolderGUI::resize_event(int w, int h) text_title->reposition_window(tx, ty); int lx = folder_list->get_x(); int ly = folder_list->get_y(); - int lh = h - ly - BC_OKButton::calculate_h() - 30; - int lw = w - lx - 160; + int lh = h - ly - BC_OKButton::calculate_h() - yS(30); + int lw = w - lx - xS(160); folder_list->reposition_window(lx, ly, lw, lh); - int x1 = lx + lw + 15; + int x1 = lx + lw + xS(15); add_filter->reposition_window(x1, add_filter->get_y()); del_filter->reposition_window(x1, del_filter->get_y()); apply_filter->reposition_window(x1,apply_filter->get_y()); @@ -1936,7 +1940,7 @@ void ModifyTargetThread::handle_close_event(int result) ModifyTargetGUI::ModifyTargetGUI(ModifyTargetThread *thread, int allow_resize) : BC_Window(_(PROGRAM_NAME ": Modify target"), - thread->wx, thread->wy, thread->ww, thread->wh, + thread->wx, thread->wy, xS(thread->ww), yS(thread->wh), -1, -1, allow_resize, 0, 1) { this->thread = thread; @@ -1948,10 +1952,12 @@ ModifyTargetGUI::~ModifyTargetGUI() void ModifyTargetGUI::create_objects(BC_TextBox *&text_box) { + int xs10 = xS(10), xs20 = xS(20); + int ys10 = yS(10); lock_window("ModifyTargetGUI::create_objects"); - int x = 10, y = 10; + int x = xs10, y = ys10; const char *text = thread->target->filter->value->get_text(); - add_subwindow(text_box = new BC_TextBox(x, y, get_w()-20, 1, text)); + add_subwindow(text_box = new BC_TextBox(x, y, get_w()-xs20, 1, text)); add_subwindow(new BC_OKButton(this)); add_subwindow(new BC_CancelButton(this)); show_window(); @@ -1978,16 +1984,18 @@ ModifyTargetPatternsGUI::~ModifyTargetPatternsGUI() void ModifyTargetPatternsGUI::create_objects() { + int xs10 = xS(10), xs20 = xS(20); + int ys10 = yS(10), ys20 = yS(20); lock_window("ModifyTargetPatternsGUI::create_objects"); BinFolderTargetPatterns *target = (BinFolderTargetPatterns *)thread->target; - int x = 10, y = 10; + int x = xs10, y = ys10; int text_font = MEDIUMFONT; text_rowsz = get_text_ascent(text_font)+1 + get_text_descent(text_font)+1; - int th = get_h() - y - BC_OKButton::calculate_h() - 20; + int th = get_h() - y - BC_OKButton::calculate_h() - ys20; int rows = th / text_rowsz; int text_len = strlen(target->text); if( text_len < BCTEXTLEN ) text_len = BCTEXTLEN; - scroll_text_box = new BC_ScrollTextBox(this, x, y, get_w()-20, rows, + scroll_text_box = new BC_ScrollTextBox(this, x, y, get_w()-xs20, rows, target->text, 2*text_len); scroll_text_box->create_objects(); add_subwindow(ok_button = new BC_OKButton(this)); @@ -1998,10 +2006,12 @@ void ModifyTargetPatternsGUI::create_objects() int ModifyTargetPatternsGUI::resize_event(int w, int h) { + int xs20 = xS(20); + int ys20 = yS(20); int tx = scroll_text_box->get_x(); int ty = scroll_text_box->get_y(); - int th = h - ty - BC_OKButton::calculate_h() - 20; - int tw = w - 20; + int th = h - ty - BC_OKButton::calculate_h() - ys20; + int tw = w - xs20; int rows = th / text_rowsz; scroll_text_box->reposition_window(tx, ty, tw, rows); ok_button->resize_event(w, h); diff --git a/cinelerra-5.1/cinelerra/bitspopup.C b/cinelerra-5.1/cinelerra/bitspopup.C index 8528ec77..83048639 100644 --- a/cinelerra-5.1/cinelerra/bitspopup.C +++ b/cinelerra-5.1/cinelerra/bitspopup.C @@ -24,15 +24,9 @@ #include "file.h" -BitsPopup::BitsPopup(BC_WindowBase *parent_window, - int x, - int y, - int *output, - int use_ulaw, - int use_adpcm, - int use_float, - int use_32linear, - int use_8linear) +BitsPopup::BitsPopup(BC_WindowBase *parent_window, int x, int y, int *output, + int use_ulaw, int use_adpcm, int use_float, int use_32linear, + int use_8linear) { this->parent_window = parent_window; this->output = output; @@ -79,17 +73,8 @@ int BitsPopup::get_h() } BitsPopupMenu::BitsPopupMenu(BitsPopup *popup, int x, int y) - : BC_ListBox(x, - y, - 120, - 100, - LISTBOX_TEXT, - &popup->bits_items, - 0, - 0, - 1, - 0, - 1) + : BC_ListBox(x, y, xS(120), yS(100), LISTBOX_TEXT, + &popup->bits_items, 0, 0, 1, 0, 1) { this->popup = popup; } @@ -102,7 +87,7 @@ int BitsPopupMenu::handle_event() } BitsPopupText::BitsPopupText(BitsPopup *popup, int x, int y) - : BC_TextBox(x, y, 120, 1, File::bitstostr(*popup->output)) + : BC_TextBox(x, y, xS(120), 1, File::bitstostr(*popup->output)) { this->popup = popup; } diff --git a/cinelerra-5.1/cinelerra/canvas.C b/cinelerra-5.1/cinelerra/canvas.C index be0a2af0..125472ae 100644 --- a/cinelerra-5.1/cinelerra/canvas.C +++ b/cinelerra-5.1/cinelerra/canvas.C @@ -36,20 +36,15 @@ -Canvas::Canvas(MWindow *mwindow, - BC_WindowBase *subwindow, - int x, - int y, - int w, - int h, - int output_w, - int output_h, +Canvas::Canvas(MWindow *mwindow, BC_WindowBase *subwindow, + int x, int y, int w, int h, int output_w, int output_h, int use_scrollbars) { reset(); - if(w < 10) w = 10; - if(h < 10) h = 10; + int xs10 = xS(10), ys10 = yS(10); + if(w < xs10) w = xs10; + if(h < ys10) h = ys10; this->mwindow = mwindow; this->subwindow = subwindow; this->x = x; diff --git a/cinelerra-5.1/cinelerra/channeledit.C b/cinelerra-5.1/cinelerra/channeledit.C index db680c17..57f07856 100644 --- a/cinelerra-5.1/cinelerra/channeledit.C +++ b/cinelerra-5.1/cinelerra/channeledit.C @@ -165,7 +165,7 @@ ChannelEditWindow::ChannelEditWindow(ChannelEditThread *thread, : BC_Window(_(PROGRAM_NAME ": Channels"), channel_picker->mwindow->session->channels_x, channel_picker->mwindow->session->channels_y, - 375, 400, 375, 400, 0, 0, 1) + xS(375), yS(400), xS(375), yS(400), 0, 0, 1) { this->thread = thread; this->channel_picker = channel_picker; @@ -186,8 +186,9 @@ ChannelEditWindow::~ChannelEditWindow() void ChannelEditWindow::create_objects() { + int xs10 = xS(10), ys10 = yS(10), ys30 = yS(30); lock_window("ChannelEditWindow::create_objects"); - int x = 10, y = 10; + int x = xs10, y = ys10; // Create channel list for(int i = 0; i < thread->new_channels->size(); i++) @@ -196,36 +197,36 @@ void ChannelEditWindow::create_objects() } add_subwindow(list_box = new ChannelEditList(this, x, y)); - x += 200; + x += xS(200); if(channel_picker->use_select()) { add_subwindow(new ChannelEditSelect(this, x, y)); - y += 30; + y += ys30; } add_subwindow(new ChannelEditAdd(this, x, y)); - y += 30; + y += ys30; add_subwindow(new ChannelEdit(this, x, y)); - y += 30; + y += ys30; add_subwindow(new ChannelEditMoveUp(this, x, y)); - y += 30; + y += ys30; add_subwindow(new ChannelEditMoveDown(this, x, y)); - y += 30; + y += ys30; add_subwindow(new ChannelEditSort(this, x, y)); - y += 30; + y += ys30; Channel *channel_usage = channel_picker->get_channel_usage(); if(channel_usage && channel_usage->has_scanning) { add_subwindow(new ChannelEditScan(this, x, y)); - y += 30; + y += ys30; } add_subwindow(new ChannelEditDel(this, x, y)); - y += 30; + y += ys30; add_subwindow(new ChannelEditPicture(this, x, y)); - y += 100; - x = 10; + y += yS(100); + x = xs10; add_subwindow(new BC_OKButton(this)); - x += 150; + x += xS(150); add_subwindow(new BC_CancelButton(this)); @@ -430,14 +431,9 @@ int ChannelEditWindow::move_channel_up() temp_text = channel_list.values[number1]; channel_list.values[number1] = channel_list.values[number2]; channel_list.values[number2] = temp_text; - list_box->update(&channel_list, - 0, - 0, - 1, - list_box->get_xposition(), - list_box->get_yposition(), - number1, - 1); + list_box->update(&channel_list, 0, 0, 1, + list_box->get_xposition(), list_box->get_yposition(), + number1, 1); } return 0; } @@ -459,14 +455,9 @@ int ChannelEditWindow::move_channel_down() temp_text = channel_list.values[number1]; channel_list.values[number1] = channel_list.values[number2]; channel_list.values[number2] = temp_text; - list_box->update(&channel_list, - 0, - 0, - 1, - list_box->get_xposition(), - list_box->get_yposition(), - number1, - 1); + list_box->update(&channel_list, 0, 0, 1, + list_box->get_xposition(), list_box->get_yposition(), + number1, 1); } return 0; } @@ -511,12 +502,9 @@ int ChannelEditAdd::handle_event() } ChannelEditList::ChannelEditList(ChannelEditWindow *window, int x, int y) - : BC_ListBox(x, - y, - 185, - window->get_h() - BC_OKButton::calculate_h() - y - 10, - LISTBOX_TEXT, - &(window->channel_list)) + : BC_ListBox(x, y, + xS(185), window->get_h() - BC_OKButton::calculate_h() - y - yS(10), + LISTBOX_TEXT, &(window->channel_list)) { this->window = window; } @@ -633,7 +621,7 @@ int ChannelEditPicture::handle_event() ConfirmScan::ConfirmScan(ChannelEditWindow *gui, int x, int y) : BC_Window(_(PROGRAM_NAME ": Scan confirm"), - x, y, 350, BC_OKButton::calculate_h() + 130, + x, y, xS(350), BC_OKButton::calculate_h() + yS(130), 0, 0, 0, 0, 1) { this->gui = gui; @@ -641,12 +629,14 @@ ConfirmScan::ConfirmScan(ChannelEditWindow *gui, int x, int y) void ConfirmScan::create_objects() { + int xs5 = xS(5), xs10 = xS(10); + int ys10 = yS(10); lock_window("ConfirmScan::create_objects"); - int x = 10, y = 10; + int x = xs10, y = ys10; int y2 = 0, x2 = 0; BC_Title *title; add_subwindow(title = new BC_Title(x, y, _("Set parameters for channel scanning."))); - y += title->get_h() + 10; + y += title->get_h() + ys10; y2 = y; add_subwindow(title = new BC_Title(x, y, _("Frequency table:"))); @@ -658,31 +648,22 @@ void ConfirmScan::create_objects() add_subwindow(title = new BC_Title(x, y, _("Input:"))); x2 = MAX(x2, title->get_w()); y += BC_PopupMenu::calculate_h(); - x2 += x + 5; + x2 += x + xs5; y = y2; x = x2; ChannelEditEditFreqtable *table; - add_subwindow(table = new ChannelEditEditFreqtable(x, - y, - 0, - gui->thread)); + add_subwindow(table = new ChannelEditEditFreqtable(x, y, 0, gui->thread)); table->add_items(); - y += table->get_h() + 10; + y += table->get_h() + ys10; ChannelEditEditNorm *norm; - add_subwindow(norm = new ChannelEditEditNorm(x, - y, - 0, - gui->thread)); + add_subwindow(norm = new ChannelEditEditNorm(x, y, 0, gui->thread)); norm->add_items(); - y += norm->get_h() + 10; + y += norm->get_h() + ys10; ChannelEditEditInput *input; - add_subwindow(input = new ChannelEditEditInput(x, - y, - 0, - gui->thread)); + add_subwindow(input = new ChannelEditEditInput(x, y, 0, gui->thread)); input->add_items(); @@ -973,9 +954,9 @@ ChannelEditEditWindow::ChannelEditEditWindow(ChannelEditEditThread *thread, ChannelEditWindow *window, ChannelPicker *channel_picker) : BC_Window(_(PROGRAM_NAME ": Edit Channel"), - channel_picker->parent_window->get_abs_cursor_x(1), + channel_picker->parent_window->get_abs_cursor_x(1), channel_picker->parent_window->get_abs_cursor_y(1), - 390, 300, 390, 300, 0, 0, 1) + xS(390), yS(300), xS(390), yS(300), 0, 0, 1) { this->channel_picker = channel_picker; this->window = window; @@ -987,12 +968,14 @@ ChannelEditEditWindow::~ChannelEditEditWindow() void ChannelEditEditWindow::create_objects(Channel *channel) { + int xs10 = xS(10), xs130 = xS(130); + int ys10 = yS(10), ys20 = yS(20), ys30 = yS(30); lock_window("ChannelEditEditWindow::create_objects"); this->new_channel = channel; Channel *channel_usage = channel_picker->get_channel_usage(); title_text = 0; - int x = 10, y = 10; + int x = xs10, y = ys10; // if(!channel_usage || // (!channel_usage->use_frequency && // !channel_usage->use_fine && @@ -1000,50 +983,46 @@ void ChannelEditEditWindow::create_objects(Channel *channel) // !channel_usage->use_input)) // { // add_subwindow(new BC_Title(x, y, MSG_NO_INP_SELECTION)); -// y += 30; +// y += ys30; // } // else // { add_subwindow(new BC_Title(x, y, _("Title:"))); - add_subwindow(title_text = new ChannelEditEditTitle(x, y + 20, thread)); - y += 50; + add_subwindow(title_text = new ChannelEditEditTitle(x, y + ys20, thread)); + y += yS(50); // } if(channel_usage && channel_usage->use_frequency) { add_subwindow(new BC_Title(x, y, _("Channel:"))); - y += 20; + y += ys20; add_subwindow(thread->source_text = new ChannelEditEditSource(x, y, thread)); - add_subwindow(new ChannelEditEditSourceTumbler(x + 160, y, thread)); - y += 40; + add_subwindow(new ChannelEditEditSourceTumbler(x + xS(160), y, thread)); + y += yS(40); add_subwindow(new BC_Title(x, y, _("Frequency table:"))); ChannelEditEditFreqtable *table; - add_subwindow(table = new ChannelEditEditFreqtable(x + 130, - y, - thread, - window->thread)); + add_subwindow(table = new ChannelEditEditFreqtable(x + xs130, + y, thread, window->thread)); table->add_items(); - y += 30; + y += ys30; } if(channel_usage && channel_usage->use_fine) { add_subwindow(new BC_Title(x, y, _("Fine:"))); - add_subwindow(new ChannelEditEditFine(x + 130, y, thread)); - y += 30; + add_subwindow(new ChannelEditEditFine(x + xs130, y, thread)); + y += ys30; } if(channel_usage && channel_usage->use_norm) { add_subwindow(new BC_Title(x, y, _("Norm:"))); ChannelEditEditNorm *norm; - add_subwindow(norm = new ChannelEditEditNorm(x + 130, - y, - thread, - window->thread)); + add_subwindow(norm = new ChannelEditEditNorm(x + xs130, + y, thread, window->thread)); norm->add_items(); - y += 30; + y += ys30; } if( (channel_usage && channel_usage->use_input) || @@ -1051,16 +1030,14 @@ void ChannelEditEditWindow::create_objects(Channel *channel) { add_subwindow(new BC_Title(x, y, _("Input:"))); ChannelEditEditInput *input; - add_subwindow(input = new ChannelEditEditInput(x + 130, - y, - thread, - window->thread)); + add_subwindow(input = new ChannelEditEditInput(x + xs130, + y, thread, window->thread)); input->add_items(); - y += 30; + y += ys30; } add_subwindow(new BC_OKButton(this)); - x += 200; + x += xS(200); add_subwindow(new BC_CancelButton(this)); show_window(); unlock_window(); @@ -1069,7 +1046,7 @@ void ChannelEditEditWindow::create_objects(Channel *channel) ChannelEditEditTitle::ChannelEditEditTitle(int x, int y, ChannelEditEditThread *thread) - : BC_TextBox(x, y, 150, 1, thread->new_channel.title) + : BC_TextBox(x, y, xS(150), 1, thread->new_channel.title) { this->thread = thread; } @@ -1088,7 +1065,7 @@ int ChannelEditEditTitle::handle_event() ChannelEditEditSource::ChannelEditEditSource(int x, int y, ChannelEditEditThread *thread) - : BC_TextBox(x, y, 150, 1, chanlists[thread->new_channel.freqtable].list[thread->new_channel.entry].name) + : BC_TextBox(x, y, xS(150), 1, chanlists[thread->new_channel.freqtable].list[thread->new_channel.entry].name) { this->thread = thread; } @@ -1126,9 +1103,7 @@ ChannelEditEditInput::ChannelEditEditInput(int x, int y, ChannelEditEditThread *thread, ChannelEditThread *edit) - : BC_PopupMenu(x, - y, - 150, + : BC_PopupMenu(x, y, xS(150), edit->value_to_input(thread ? thread->new_channel.input : edit->scan_params.input)) { this->thread = thread; @@ -1193,9 +1168,7 @@ ChannelEditEditNorm::ChannelEditEditNorm(int x, int y, ChannelEditEditThread *thread, ChannelEditThread *edit) - : BC_PopupMenu(x, - y, - 100, + : BC_PopupMenu(x, y, xS(100), edit->value_to_norm(thread ? thread->new_channel.norm : edit->scan_params.norm)) { this->thread = thread; @@ -1246,9 +1219,7 @@ ChannelEditEditFreqtable::ChannelEditEditFreqtable(int x, int y, ChannelEditEditThread *thread, ChannelEditThread *edit) - : BC_PopupMenu(x, - y, - 150, + : BC_PopupMenu(x, y, xS(150), edit->value_to_freqtable(thread ? thread->new_channel.freqtable : edit->scan_params.freqtable)) { this->thread = thread; @@ -1301,13 +1272,7 @@ int ChannelEditEditFreqItem::handle_event() ChannelEditEditFine::ChannelEditEditFine(int x, int y, ChannelEditEditThread *thread) - : BC_ISlider(x, - y, - 0, - 240, - 240, - -100, - 100, + : BC_ISlider(x, y, 0, xS(240), xS(240), -100, 100, thread->new_channel.fine_tune) { this->thread = thread; @@ -1383,7 +1348,7 @@ int ChannelEditPictureWindow::calculate_h(ChannelPicker *channel_picker) PictureConfig *picture_usage = channel_picker->get_picture_usage(); int pad = BC_Pot::calculate_h(); int text_h = channel_picker->parent_window->get_text_height(MEDIUMFONT); - int result = 20 + text_h + 5 + BC_OKButton::calculate_h(); + int result = yS(20+5) + text_h + BC_OKButton::calculate_h(); // Only used for Video4Linux 1 if( !picture_usage || ( @@ -1431,7 +1396,7 @@ int ChannelEditPictureWindow::calculate_w(ChannelPicker *channel_picker) !channel_picker->get_controls())) { result = BC_Title::calculate_w(channel_picker->parent_window, - MSG_NO_PIC_CONTROLS) + 20; + MSG_NO_PIC_CONTROLS) + xS(20); } // Only used for Video4Linux 1 @@ -1478,8 +1443,9 @@ int ChannelEditPictureWindow::calculate_w(ChannelPicker *channel_picker) void ChannelEditPictureWindow::create_objects() { + int xs10 = xS(10), ys10 = yS(10); lock_window("ChannelEditPictureWindow::create_objects"); - int x = 10, y = 10; + int x = xs10, y = ys10; int widget_border = ((Theme*)channel_picker->get_theme())->widget_border; int x1 = get_w() - BC_Pot::calculate_w() * 2 - widget_border * 2; int x2 = get_w() - BC_Pot::calculate_w() - widget_border; @@ -1499,13 +1465,13 @@ void ChannelEditPictureWindow::create_objects() !channel_picker->get_controls())) { add_subwindow(new BC_Title(x, y, MSG_NO_PIC_CONTROLS)); - y += 50; + y += yS(50); } // Only used for Video4Linux 1 if(picture_usage && picture_usage->use_brightness) { - add_subwindow(new BC_Title(x, y + 10, _("Brightness:"))); + add_subwindow(new BC_Title(x, y + ys10, _("Brightness:"))); add_subwindow(new ChannelEditBright(x1, y, channel_picker, channel_picker->get_brightness())); y += pad; SWAP_X @@ -1514,7 +1480,7 @@ void ChannelEditPictureWindow::create_objects() if(picture_usage && picture_usage->use_contrast) { - add_subwindow(new BC_Title(x, y + 10, _("Contrast:"))); + add_subwindow(new BC_Title(x, y + ys10, _("Contrast:"))); add_subwindow(new ChannelEditContrast(x1, y, channel_picker, channel_picker->get_contrast())); y += pad; SWAP_X @@ -1522,7 +1488,7 @@ void ChannelEditPictureWindow::create_objects() if(picture_usage && picture_usage->use_color) { - add_subwindow(new BC_Title(x, y + 10, _("Color:"))); + add_subwindow(new BC_Title(x, y + ys10, _("Color:"))); add_subwindow(new ChannelEditColor(x1, y, channel_picker, channel_picker->get_color())); y += pad; SWAP_X @@ -1530,7 +1496,7 @@ void ChannelEditPictureWindow::create_objects() if(picture_usage && picture_usage->use_hue) { - add_subwindow(new BC_Title(x, y + 10, _("Hue:"))); + add_subwindow(new BC_Title(x, y + ys10, _("Hue:"))); add_subwindow(new ChannelEditHue(x1, y, channel_picker, channel_picker->get_hue())); y += pad; SWAP_X @@ -1538,7 +1504,7 @@ void ChannelEditPictureWindow::create_objects() if(picture_usage && picture_usage->use_whiteness) { - add_subwindow(new BC_Title(x, y + 10, _("Whiteness:"))); + add_subwindow(new BC_Title(x, y + ys10, _("Whiteness:"))); add_subwindow(new ChannelEditWhiteness(x1, y, channel_picker, channel_picker->get_whiteness())); y += pad; SWAP_X @@ -1547,8 +1513,7 @@ void ChannelEditPictureWindow::create_objects() for(int i = 0; i < channel_picker->get_controls(); i++) { BC_Title *title; - add_subwindow(title = new BC_Title(x, - y + 10, + add_subwindow(title = new BC_Title(x, y + ys10, _(channel_picker->get_control(i)->name))); int x3 = x1; @@ -1580,11 +1545,7 @@ int ChannelEditPictureWindow::translation_event() ChannelEditBright::ChannelEditBright(int x, int y, ChannelPicker *channel_picker, int value) - : BC_IPot(x, - y, - value, - -100, - 100) + : BC_IPot(x, y, value, -100, 100) { this->channel_picker = channel_picker; } @@ -1604,11 +1565,7 @@ int ChannelEditBright::button_release_event() } ChannelEditContrast::ChannelEditContrast(int x, int y, ChannelPicker *channel_picker, int value) - : BC_IPot(x, - y, - value, - -100, - 100) + : BC_IPot(x, y, value, -100, 100) { this->channel_picker = channel_picker; } @@ -1629,11 +1586,7 @@ int ChannelEditContrast::button_release_event() ChannelEditColor::ChannelEditColor(int x, int y, ChannelPicker *channel_picker, int value) - : BC_IPot(x, - y, - value, - -100, - 100) + : BC_IPot(x, y, value, -100, 100) { this->channel_picker = channel_picker; } @@ -1653,11 +1606,7 @@ int ChannelEditColor::button_release_event() } ChannelEditHue::ChannelEditHue(int x, int y, ChannelPicker *channel_picker, int value) - : BC_IPot(x, - y, - value, - -100, - 100) + : BC_IPot(x, y, value, -100, 100) { this->channel_picker = channel_picker; } @@ -1677,11 +1626,7 @@ int ChannelEditHue::button_release_event() } ChannelEditWhiteness::ChannelEditWhiteness(int x, int y, ChannelPicker *channel_picker, int value) - : BC_IPot(x, - y, - value, - -100, - 100) + : BC_IPot(x, y, value, -100, 100) { this->channel_picker = channel_picker; } @@ -1704,15 +1649,9 @@ int ChannelEditWhiteness::button_release_event() -ChannelEditCommon::ChannelEditCommon(int x, - int y, - ChannelPicker *channel_picker, - PictureItem *item) - : BC_IPot(x, - y, - item->value, - item->min, - item->max) +ChannelEditCommon::ChannelEditCommon(int x, int y, + ChannelPicker *channel_picker, PictureItem *item) + : BC_IPot(x, y, item->value, item->min, item->max) { this->channel_picker = channel_picker; this->device_id = item->device_id; diff --git a/cinelerra-5.1/cinelerra/channelinfo.C b/cinelerra-5.1/cinelerra/channelinfo.C index 177f2840..e6e8486e 100644 --- a/cinelerra-5.1/cinelerra/channelinfo.C +++ b/cinelerra-5.1/cinelerra/channelinfo.C @@ -259,44 +259,46 @@ int ChanSearchList::move_column_event() void ChanSearchGUI::create_objects() { + int xs10 = xS(10), xs20 = xS(20); + int ys5 = yS(5), ys10 = yS(10); lock_window("ChanSearchGUI::create_objects"); - int pady = BC_TextBox::calculate_h(this, MEDIUMFONT, 0, 1) + 5; + int pady = BC_TextBox::calculate_h(this, MEDIUMFONT, 0, 1) + ys5; int padx = BC_Title::calculate_w(this, (char*)"X", MEDIUMFONT); int x = padx/2, y = pady/4; BC_Title *title = new BC_Title(text_x, text_y, _("Text:"), MEDIUMFONT, YELLOW); add_subwindow(title); x += title->get_w(); text_x = x; text_y = y; - search_text = new ChanSearchText(this, x, y, get_w()-x-10); + search_text = new ChanSearchText(this, x, y, get_w()-x-xs10); add_subwindow(search_text); - x = padx; y += pady + 5; + x = padx; y += pady + ys5; title_text = new ChanSearchTitleText(this, x, y); add_subwindow(title_text); x += title_text->get_w() + padx; info_text = new ChanSearchInfoText(this, x, y); add_subwindow(info_text); x += title_text->get_w() + padx; match_case = new ChanSearchMatchCase(this, x, y); add_subwindow(match_case); x += match_case->get_w() + padx; - results_x = x + 20; results_y = y + 5; + results_x = x + xs20; results_y = y + ys5; results = new BC_Title(results_x, results_y, " ", MEDIUMFONT, YELLOW); add_subwindow(results); - x = padx; y += pady + 5; - search_x = 10; - search_y = get_h() - BC_GenericButton::calculate_h() - 10; + x = padx; y += pady + ys5; + search_x = xs10; + search_y = get_h() - BC_GenericButton::calculate_h() - ys10; search_start = new ChanSearchStart(this, search_x, search_y); add_subwindow(search_start); cancel_w = ChanSearchCancel::calculate_w(); cancel_h = ChanSearchCancel::calculate_h(); - cancel_x = get_w() - cancel_w - 10; - cancel_y = get_h() - cancel_h - 10; + cancel_x = get_w() - cancel_w - xs10; + cancel_y = get_h() - cancel_h - ys10; cancel = new ChanSearchCancel(this, cancel_x, cancel_y); add_subwindow(cancel); list_x = x; list_y = y; - int list_w = get_w()-10 - list_x; - int list_h = min(search_y, cancel_y)-10 - list_y; + int list_w = get_w()-xs10 - list_x; + int list_h = min(search_y, cancel_y)-ys10 - list_y; search_list = new ChanSearchList(this, list_x, list_y, list_w, list_h); add_subwindow(search_list); search_list->show_window(); int clktip_x = list_x; - int clktip_y = list_y + list_h + 5; + int clktip_y = list_y + list_h + ys5; click_tip = new BC_Title(clktip_x, clktip_y, _("dbl clk row to find title")); add_subwindow(click_tip); @@ -305,11 +307,14 @@ void ChanSearchGUI::create_objects() unlock_window(); } +#define CSW_W xS(500) +#define CSW_H yS(300) + ChanSearchGUI::ChanSearchGUI(ChanSearch *cswindow) : BC_Window(_(PROGRAM_NAME ": ChanSearch"), - cswindow->iwindow->gui->get_abs_cursor_x(1) - 500 / 2, - cswindow->iwindow->gui->get_abs_cursor_y(1) - 300 / 2, - 500, 300, 400, 300) + cswindow->iwindow->gui->get_abs_cursor_x(1) - CSW_W/2, + cswindow->iwindow->gui->get_abs_cursor_y(1) - CSW_H/2, + CSW_W, CSW_H, xS(400), yS(300)) { this->cswindow = cswindow; this->iwindow = cswindow->iwindow; @@ -341,9 +346,9 @@ ChanSearchGUI::ChanSearchGUI(ChanSearch *cswindow) search_column_titles[0] = _("Source"); search_column_titles[1] = C_("Title"); search_column_titles[2] = _("Start time"); - search_column_widths[0] = 120; - search_column_widths[2] = 120; - search_column_widths[1] = get_w()-search_column_widths[0]-search_column_widths[2]-32; + search_column_widths[0] = xS(120); + search_column_widths[2] = xS(120); + search_column_widths[1] = get_w()-search_column_widths[0]-search_column_widths[2]-xS(32); } ChanSearchGUI::~ChanSearchGUI() @@ -362,19 +367,21 @@ ChanSearchGUI::~ChanSearchGUI() int ChanSearchGUI::resize_event(int w, int h) { + int xs5 = xS(5), xs10 = xS(10); + int ys10 = yS(10); search_text->reposition_window(text_x, text_y, w-text_x-10); - int cancel_x = w - BC_CancelButton::calculate_w() - 10; - int cancel_y = h - BC_CancelButton::calculate_h() - 10; + int cancel_x = w - BC_CancelButton::calculate_w() - xs10; + int cancel_y = h - BC_CancelButton::calculate_h() - ys10; cancel->reposition_window(cancel_x, cancel_y); - search_x = 10; - search_y = h - BC_GenericButton::calculate_h() - 10; + search_x = xs10; + search_y = h - BC_GenericButton::calculate_h() - ys10; search_start->reposition_window(search_x, search_y); - int list_w = w-10 - list_x; - int list_h = min(search_y, cancel_y)-10 - list_y; - search_column_widths[1] = w-search_column_widths[0]-search_column_widths[2]-32; + int list_w = w-xs10 - list_x; + int list_h = min(search_y, cancel_y)-ys10 - list_y; + search_column_widths[1] = w-search_column_widths[0]-search_column_widths[2]-xS(32); search_list->reposition_window(list_x, list_y, list_w, list_h); int clktip_x = list_x; - int clktip_y = list_y + list_h + 5; + int clktip_y = list_y + list_h + xs5; click_tip->reposition_window(clktip_x, clktip_y); update(); return 1; @@ -1285,6 +1292,8 @@ int ChannelInfoGUIBatches::handle_event() void ChannelInfoGUI::create_objects() { + int xs10 = xS(10); + int ys5 = yS(5), ys10 = yS(10); lock_window("ChannelInfoGUI::create_objects"); panel = new ChannelPanel(this,0,0,panel_w,panel_h); add_subwindow(panel); @@ -1311,9 +1320,9 @@ void ChannelInfoGUI::create_objects() batch_bay->set_current_batch(-1); batch_bay->update_batches(-1); - pad = BC_TextBox::calculate_h(this, MEDIUMFONT, 0, 1) + 5; - x0 = bay_x+bay_w + 10; - y0 = bay_y+10; + pad = BC_TextBox::calculate_h(this, MEDIUMFONT, 0, 1) + ys5; + x0 = bay_x+bay_w + xs10; + y0 = bay_y+ys10; int ww = 0; int x = x0; int y = y0; @@ -1361,9 +1370,9 @@ void ChannelInfoGUI::create_objects() x = x0 + pad; add_subwindow(channel_clear_batch = new ChannelClearBatch(this, x, y)); - x += channel_clear_batch->get_w() + 10; + x += channel_clear_batch->get_w() + xs10; add_subwindow(channel_new_batch = new ChannelNewBatch(this, x, y)); - x += channel_new_batch->get_w() + 10; + x += channel_new_batch->get_w() + xs10; add_subwindow(channel_delete_batch = new ChannelDeleteBatch(this, x, y)); x += channel_delete_batch->get_w(); ww = max(x-x0, ww); @@ -1381,9 +1390,12 @@ void ChannelInfoGUI::create_objects() ChannelInfoGUI::ChannelInfoGUI(ChannelInfo *iwindow, int x, int y, int w, int h) - : BC_Window(_(PROGRAM_NAME ": Channel Info"), x, y, w, h, 600, 400, - 1, 0, 0 , -1, iwindow->mwindow->get_cwindow_display()) + : BC_Window(_(PROGRAM_NAME ": Channel Info"), x, y, + w, h, xS(600), yS(400), 1, 0, 0 , -1, + iwindow->mwindow->get_cwindow_display()) { + int xs10 = xS(10), xs20 = xS(20); + int ys5 = yS(5), ys10 = yS(10); this->iwindow = iwindow; panel = 0; batch_bay =0; @@ -1411,31 +1423,31 @@ ChannelInfoGUI::ChannelInfoGUI(ChannelInfo *iwindow, x0 = y0 = title_w = data_w = status_w = pad = 0; ok_w = BC_OKButton::calculate_w(); ok_h = BC_OKButton::calculate_h(); - ok_x = 10; - ok_y = h - ok_h - 10; + ok_x = xs10; + ok_y = h - ok_h - ys10; BC_CheckBox::calculate_extents(this, &cron_w, &cron_h, cron_caption); cron_x = ok_x; - cron_y = ok_y - cron_h - 10; + cron_y = ok_y - cron_h - ys10; BC_CheckBox::calculate_extents(this, &power_w, &power_h, power_caption); power_x = cron_x; - power_y = cron_y - power_h - 5; + power_y = cron_y - power_h - ys5; find_h = BC_GenericButton::calculate_h(); find_x = power_x; - find_y = power_y - find_h - 10; + find_y = power_y - find_h - ys10; cancel_w = BC_CancelButton::calculate_w(); cancel_h = BC_CancelButton::calculate_h(); - cancel_x = w - cancel_w - 10, - cancel_y = h - cancel_h - 10; - max_bay_w = 700; - bay_h = 150; - bay_x = ok_w + 20; - int x1 = cron_x+cron_w + 10; + cancel_x = w - cancel_w - xs10, + cancel_y = h - cancel_h - ys10; + max_bay_w = xS(700); + bay_h = yS(150); + bay_x = ok_w + xs20; + int x1 = cron_x+cron_w + xs10; if( x1 > bay_x ) bay_x = x1; - x1 = power_x+power_w + 10; + x1 = power_x+power_w + xs10; if( x1 > bay_x ) bay_x = x1; bay_y = h - bay_h; // data_w,status_w zero, updated in create_objects - bay_w = (w-bay_x) - (data_w+10) - (max(cancel_w, status_w)+20); + bay_w = (w-bay_x) - (data_w+xs10) - (max(cancel_w, status_w)+xs20); if( bay_w > max_bay_w ) bay_w = max_bay_w; panel_w = w; panel_h = h - bay_h; @@ -1472,39 +1484,41 @@ int ChannelInfoGUI::translation_event() int ChannelInfoGUI::resize_event(int w, int h) { + int xs10 = xS(10), xs20 = xS(20); + int ys5 = yS(5), ys10 = yS(10); iwindow->mwindow->session->cswindow_w = w; iwindow->mwindow->session->cswindow_h = h; panel_w = w; panel_h = h - bay_h; panel->resize(panel_w,panel_h); panel->reposition_window(0,0,panel_w,panel_h); - ok_x = 10; - ok_y = h - ok_h - 10; + ok_x = xs10; + ok_y = h - ok_h - ys10; ok->reposition_window(ok_x, ok_y); cron_x = ok_x; - cron_y = ok_y - cron_h - 10; + cron_y = ok_y - cron_h - ys10; channel_cron->reposition_window(cron_x, cron_y); power_x = cron_x; - power_y = cron_y - power_h - 5; + power_y = cron_y - power_h - ys5; channel_poweroff->reposition_window(power_x, power_y); find_x = power_x; - find_y = power_y - find_h - 10; + find_y = power_y - find_h - ys10; channel_find->reposition_window(find_x, find_y); - cancel_x = w - cancel_w - 10, - cancel_y = h - cancel_h - 10; + cancel_x = w - cancel_w - xs10, + cancel_y = h - cancel_h - ys10; cancel->reposition_window(cancel_x, cancel_y); - bay_x = ok_w + 20; - int x1 = cron_x+cron_w + 10; + bay_x = ok_w + xs20; + int x1 = cron_x+cron_w + xs10; if( x1 > bay_x ) bay_x = x1; - x1 = power_x+power_w + 10; + x1 = power_x+power_w + xs10; if( x1 > bay_x ) bay_x = x1; bay_y = h - bay_h; - bay_w = (w-bay_x) - (data_w+10) - (max(cancel_w, status_w)+20); + bay_w = (w-bay_x) - (data_w+xs10) - (max(cancel_w, status_w)+xs20); if( bay_w > max_bay_w ) bay_w = max_bay_w; batch_bay->reposition_window(bay_x, bay_y, bay_w, bay_h); - int x0 = bay_x+bay_w + 10; - int y0 = bay_y+10; + int x0 = bay_x+bay_w + xs10; + int y0 = bay_y+ys10; int x = x0; int y = y0; @@ -1529,9 +1543,9 @@ int ChannelInfoGUI::resize_event(int w, int h) x = x0 + pad; channel_clear_batch->reposition_window(x, y); - x += channel_clear_batch->get_w() + 10; + x += channel_clear_batch->get_w() + xs10; channel_new_batch->reposition_window(x, y); - x += channel_new_batch->get_w() + 10; + x += channel_new_batch->get_w() + xs10; channel_delete_batch->reposition_window(x, y); y = y0; @@ -1676,8 +1690,8 @@ void ChannelInfo::run() int y = mwindow->session->cswindow_y; int w = mwindow->session->cswindow_w; int h = mwindow->session->cswindow_h; - if( w < 600 ) w = 600; - if( h < 400 ) h = 400; + if( w < xS(600) ) w = xS(600); + if( h < yS(400) ) h = yS(400); int scr_x = mwindow->gui->get_screen_x(1, -1); int scr_w = mwindow->gui->get_screen_w(1, -1); if( x < scr_x ) x = scr_x; @@ -1825,7 +1839,7 @@ ChannelDuration::ChannelDuration(ChannelInfoGUI *gui, int x, int y, int w) ChannelEarlyTime::ChannelEarlyTime(ChannelInfoGUI *gui, int x, int y, double *output_time) - : TimeEntryTumbler(gui, x, y, 0, output_time, 15, TIME_MS2, 75) + : TimeEntryTumbler(gui, x, y, 0, output_time, 15, TIME_MS2, xS(75)) { this->gui = gui; } @@ -1845,7 +1859,7 @@ int ChannelEarlyTime::handle_down_event() ChannelLateTime::ChannelLateTime(ChannelInfoGUI *gui, int x, int y, double *output_time) - : TimeEntryTumbler(gui, x, y, 0, output_time, 15, TIME_MS2, 75) + : TimeEntryTumbler(gui, x, y, 0, output_time, 15, TIME_MS2, xS(75)) { this->gui = gui; } diff --git a/cinelerra-5.1/cinelerra/clipedit.C b/cinelerra-5.1/cinelerra/clipedit.C index 29ebd9f6..e002dd47 100644 --- a/cinelerra-5.1/cinelerra/clipedit.C +++ b/cinelerra-5.1/cinelerra/clipedit.C @@ -131,11 +131,13 @@ void ClipEdit::create_clip(EDL *clip, int x, int y) start(); } +#define CEW_W xS(400) +#define CEW_H yS(350) ClipEditWindow::ClipEditWindow(MWindow *mwindow, ClipEdit *thread) : BC_Window(_(PROGRAM_NAME ": Clip Info"), - thread->x -400/2, thread->y - 350/2, - 400, 350, 400, 430, 0, 0, 1) + thread->x - CEW_W/2, thread->y - CEW_H/2, + CEW_W, CEW_H, CEW_W, CEW_H, 0, 0, 1) { this->mwindow = mwindow; this->thread = thread; @@ -148,31 +150,33 @@ ClipEditWindow::~ClipEditWindow() void ClipEditWindow::create_objects() { + int xs10 = xS(10); + int ys5 = yS(5), ys10 = yS(10); lock_window("ClipEditWindow::create_objects"); this->create_it = thread->create_it; - int x = 10, y = 10; + int x = xs10, y = ys10; int x1 = x; BC_TextBox *textbox; BC_Title *title; add_subwindow(title = new BC_Title(x1, y, _("Title:"))); - y += title->get_h() + 5; + y += title->get_h() + ys5; add_subwindow(titlebox = new ClipEditTitle(this, x1, y, get_w() - x1 * 2)); int end = strlen(titlebox->get_text()); titlebox->set_selection(0, end, end); - y += titlebox->get_h() + 10; + y += titlebox->get_h() + ys10; add_subwindow(title = new BC_Title(x1, y, _("Comments:"))); - y += title->get_h() + 5; + y += title->get_h() + ys5; add_subwindow(textbox = new ClipEditComments(this, x1, y, get_w() - x1 * 2, BC_TextBox::pixels_to_rows(this, MEDIUMFONT, - get_h() - 10 - BC_OKButton::calculate_h() - y))); + get_h() - ys10 - BC_OKButton::calculate_h() - y))); diff --git a/cinelerra-5.1/cinelerra/colorpicker.C b/cinelerra-5.1/cinelerra/colorpicker.C index 57601d7e..ad559a79 100644 --- a/cinelerra-5.1/cinelerra/colorpicker.C +++ b/cinelerra-5.1/cinelerra/colorpicker.C @@ -77,9 +77,9 @@ BC_Window* ColorPicker::new_gui() strcpy(window_title, _(PROGRAM_NAME ": ")); strcat(window_title, title ? title : _("Color Picker")); BC_DisplayInfo display_info; - int x = display_info.get_abs_cursor_x() + 25; - int y = display_info.get_abs_cursor_y() - 100; - int w = 540, h = 330; + int x = display_info.get_abs_cursor_x() + xS(25); + int y = display_info.get_abs_cursor_y() - yS(100); + int w = xS(540), h = yS(330); if( ok_cancel ) h += bmax(BC_OKButton::calculate_h(),BC_CancelButton::calculate_h()); int root_w = display_info.get_root_w(), root_h = display_info.get_root_h(); @@ -148,7 +148,9 @@ ColorWindow::~ColorWindow() void ColorWindow::create_objects() { - int x0 = 10, y0 = 10; + int xs5 = xS(5), xs10 = xS(10), xs15 = xS(15); + int ys10 = yS(10), ys15 = yS(15), ys25 = yS(25), ys40 = yS(40); + int x0 = xs10, y0 = ys10; lock_window("ColorWindow::create_objects"); change_values(); @@ -156,69 +158,69 @@ void ColorWindow::create_objects() add_tool(wheel = new PaletteWheel(this, x, y)); wheel->create_objects(); - x += 180; add_tool(wheel_value = new PaletteWheelValue(this, x, y)); + x += xS(180); add_tool(wheel_value = new PaletteWheelValue(this, x, y)); wheel_value->create_objects(); x = x0; - y += 180; add_tool(output = new PaletteOutput(this, x, y)); + y += yS(180); add_tool(output = new PaletteOutput(this, x, y)); output->create_objects(); - y += output->get_h() + 20; + y += output->get_h() + yS(20); load_history(); int x1 = x; add_tool(hex_btn = new PaletteHexButton(this, x1, y)); char hex[BCSTRLEN]; sprintf(hex,"%06x",thread->output); - x1 += hex_btn->get_w() + 5; + x1 += hex_btn->get_w() + xs5; add_tool(hex_box = new PaletteHex(this, x1, y, hex)); - x1 += hex_box->get_w() + 15; + x1 += hex_box->get_w() + xs15; add_tool(grab_btn = new PaletteGrabButton(this, x1, y)); - y += hex_box->get_h() + 15; - add_tool(history = new PaletteHistory(this, 10, y)); + y += hex_box->get_h() + ys15; + add_tool(history = new PaletteHistory(this, xs10, y)); - x += 240; + x += xS(240); add_tool(new BC_Title(x, y =y0, C_("H:"), SMALLFONT)); - add_tool(new BC_Title(x, y+=25, C_("S:"), SMALLFONT)); - add_tool(new BC_Title(x, y+=25, D_("colorpicker_value#V:"), SMALLFONT)); - add_tool(new BC_Title(x, y+=40, C_("R:"), SMALLFONT)); - add_tool(new BC_Title(x, y+=25, C_("G:"), SMALLFONT)); - add_tool(new BC_Title(x, y+=25, C_("B:"), SMALLFONT)); - add_tool(new BC_Title(x, y+=40, C_("Y:"), SMALLFONT)); - add_tool(new BC_Title(x, y+=25, C_("U:"), SMALLFONT)); - add_tool(new BC_Title(x, y+=25, D_("colorpicker_Cr#V:"), SMALLFONT)); + add_tool(new BC_Title(x, y+=ys25, C_("S:"), SMALLFONT)); + add_tool(new BC_Title(x, y+=ys25, D_("colorpicker_value#V:"), SMALLFONT)); + add_tool(new BC_Title(x, y+=ys40, C_("R:"), SMALLFONT)); + add_tool(new BC_Title(x, y+=ys25, C_("G:"), SMALLFONT)); + add_tool(new BC_Title(x, y+=ys25, C_("B:"), SMALLFONT)); + add_tool(new BC_Title(x, y+=ys40, C_("Y:"), SMALLFONT)); + add_tool(new BC_Title(x, y+=ys25, C_("U:"), SMALLFONT)); + add_tool(new BC_Title(x, y+=ys25, D_("colorpicker_Cr#V:"), SMALLFONT)); if( thread->do_alpha ) - add_tool(new BC_Title(x, y+=40, C_("A:"), SMALLFONT)); - x += 24; + add_tool(new BC_Title(x, y+=ys40, C_("A:"), SMALLFONT)); + x += xS(24); add_tool(hue = new PaletteHue(this, x, y= y0)); - add_tool(sat = new PaletteSat(this, x, y+=25)); - add_tool(val = new PaletteVal(this, x, y+=25)); - add_tool(red = new PaletteRed(this, x, y+=40)); - add_tool(grn = new PaletteGrn(this, x, y+=25)); - add_tool(blu = new PaletteBlu(this, x, y+=25)); - add_tool(lum = new PaletteLum(this, x, y+=40)); - add_tool(c_r = new PaletteCr (this, x, y+=25)); - add_tool(c_b = new PaletteCb (this, x, y+=25)); + add_tool(sat = new PaletteSat(this, x, y+=ys25)); + add_tool(val = new PaletteVal(this, x, y+=ys25)); + add_tool(red = new PaletteRed(this, x, y+=ys40)); + add_tool(grn = new PaletteGrn(this, x, y+=ys25)); + add_tool(blu = new PaletteBlu(this, x, y+=ys25)); + add_tool(lum = new PaletteLum(this, x, y+=ys40)); + add_tool(c_r = new PaletteCr (this, x, y+=ys25)); + add_tool(c_b = new PaletteCb (this, x, y+=ys25)); if( thread->do_alpha ) - add_tool(alpha = new PaletteAlpha(this, x, y+=40)); + add_tool(alpha = new PaletteAlpha(this, x, y+=ys40)); - x += hue->get_w() + 10; + x += hue->get_w() + xs10; hsv_h = new PaletteHSV(this, x,y= y0, hsv.h, 0, 360); hsv_h->create_objects(); hsv_h->set_tooltip(_("Hue")); - hsv_s = new PaletteHSV(this, x,y+=25, hsv.s, 0, 1); + hsv_s = new PaletteHSV(this, x,y+=ys25, hsv.s, 0, 1); hsv_s->create_objects(); hsv_s->set_tooltip(_("Saturation")); - hsv_v = new PaletteHSV(this, x,y+=25, hsv.v, 0, 1); + hsv_v = new PaletteHSV(this, x,y+=ys25, hsv.v, 0, 1); hsv_v->create_objects(); hsv_v->set_tooltip(_("Value")); - rgb_r = new PaletteRGB(this, x,y+=40, rgb.r, 0, 1); + rgb_r = new PaletteRGB(this, x,y+=ys40, rgb.r, 0, 1); rgb_r->create_objects(); rgb_r->set_tooltip(_("Red")); - rgb_g = new PaletteRGB(this, x,y+=25, rgb.g, 0, 1); + rgb_g = new PaletteRGB(this, x,y+=ys25, rgb.g, 0, 1); rgb_g->create_objects(); rgb_g->set_tooltip(_("Green")); - rgb_b = new PaletteRGB(this, x,y+=25, rgb.b, 0, 1); + rgb_b = new PaletteRGB(this, x,y+=ys25, rgb.b, 0, 1); rgb_b->create_objects(); rgb_b->set_tooltip(_("Blue")); - yuv_y = new PaletteYUV(this, x,y+=40, yuv.y, 0, 1); + yuv_y = new PaletteYUV(this, x,y+=ys40, yuv.y, 0, 1); yuv_y->create_objects(); yuv_y->set_tooltip(_("Luminance")); - yuv_u = new PaletteYUV(this, x,y+=25, yuv.u, 0, 1); + yuv_u = new PaletteYUV(this, x,y+=ys25, yuv.u, 0, 1); yuv_u->create_objects(); yuv_u->set_tooltip(_("Blue Luminance Difference")); - yuv_v = new PaletteYUV(this, x,y+=25, yuv.v, 0, 1); + yuv_v = new PaletteYUV(this, x,y+=ys25, yuv.v, 0, 1); yuv_v->create_objects(); yuv_v->set_tooltip(_("Red Luminance Difference")); if( thread->do_alpha ) { - aph_a = new PaletteAPH(this, x,y+=40, aph, 0, 1); + aph_a = new PaletteAPH(this, x,y+=ys40, aph, 0, 1); aph_a->create_objects(); aph_a->set_tooltip(_("Alpha")); } if( thread->ok_cancel ) { @@ -380,7 +382,7 @@ void ColorWindow::update_rgb_hex(const char *hex) PaletteWheel::PaletteWheel(ColorWindow *window, int x, int y) - : BC_SubWindow(x, y, 170, 170) + : BC_SubWindow(x, y, xS(170), yS(170)) { this->window = window; oldhue = 0; @@ -493,27 +495,15 @@ void PaletteWheel::create_objects() } } } -//printf("PaletteWheel::create_objects 1\n"); draw_vframe(&frame, - 0, - 0, - get_w(), - get_h(), - 0, - 0, - get_w(), - get_h(), - 0); -//printf("PaletteWheel::create_objects 1\n"); + 0, 0, get_w(), get_h(), + 0, 0, get_w(), get_h(), 0); oldhue = window->hsv.h; oldsaturation = window->hsv.s; -//printf("PaletteWheel::create_objects 1\n"); draw(oldhue, oldsaturation); -//printf("PaletteWheel::create_objects 1\n"); flash(); -//printf("PaletteWheel::create_objects 2\n"); } float PaletteWheel::torads(float angle) @@ -563,7 +553,7 @@ int PaletteWheel::draw(float hue, float saturation) set_inverse(); set_color(WHITE); - draw_circle(x - 5, y - 5, 10, 10); + draw_circle(x - xS(5), y - yS(5), xS(10), yS(10)); set_opaque(); return 0; } @@ -577,7 +567,7 @@ int PaletteWheel::get_angle(float x1, float y1, float x2, float y2) } PaletteWheelValue::PaletteWheelValue(ColorWindow *window, int x, int y) - : BC_SubWindow(x, y, 40, 170, BLACK) + : BC_SubWindow(x, y, xS(40), yS(170), BLACK) { this->window = window; button_down = 0; @@ -649,7 +639,6 @@ int PaletteWheelValue::draw(float hue, float saturation, float value) row[j * 3 + 2] = b; } } - draw_3d_border(0, 0, get_w(), get_h(), 1); draw_vframe(frame, 2, 2, get_w() - 4, get_h() - 4, 2, 2, get_w() - 4, get_h() - 4, 0); @@ -662,7 +651,7 @@ int PaletteWheelValue::draw(float hue, float saturation, float value) } PaletteOutput::PaletteOutput(ColorWindow *window, int x, int y) - : BC_SubWindow(x, y, 180, 30, BLACK) + : BC_SubWindow(x, y, xS(180), yS(30), BLACK) { this->window = window; } @@ -691,7 +680,7 @@ int PaletteOutput::draw() } PaletteHue::PaletteHue(ColorWindow *window, int x, int y) - : BC_ISlider(x, y, 0, 150, 200, 0, 359, (int)(window->hsv.h), 0) + : BC_ISlider(x, y, 0, xS(150), xS(200), 0, 359, (int)(window->hsv.h), 0) { this->window = window; } @@ -708,7 +697,7 @@ int PaletteHue::handle_event() } PaletteSat::PaletteSat(ColorWindow *window, int x, int y) - : BC_FSlider(x, y, 0, 150, 200, 0, 1.0, window->hsv.s, 0) + : BC_FSlider(x, y, 0, xS(150), xS(200), 0, 1.0, window->hsv.s, 0) { this->window = window; set_precision(0.01); @@ -727,7 +716,7 @@ int PaletteSat::handle_event() PaletteVal::PaletteVal(ColorWindow *window, int x, int y) - : BC_FSlider(x, y, 0, 150, 200, 0, 1.0, window->hsv.v, 0) + : BC_FSlider(x, y, 0, xS(150), xS(200), 0, 1.0, window->hsv.v, 0) { this->window = window; set_precision(0.01); @@ -746,7 +735,7 @@ int PaletteVal::handle_event() PaletteRed::PaletteRed(ColorWindow *window, int x, int y) - : BC_FSlider(x, y, 0, 150, 200, 0, 1, window->rgb.r, 0) + : BC_FSlider(x, y, 0, xS(150), xS(200), 0, 1, window->rgb.r, 0) { this->window = window; set_precision(0.01); @@ -764,7 +753,7 @@ int PaletteRed::handle_event() } PaletteGrn::PaletteGrn(ColorWindow *window, int x, int y) - : BC_FSlider(x, y, 0, 150, 200, 0, 1, window->rgb.g, 0) + : BC_FSlider(x, y, 0, xS(150), xS(200), 0, 1, window->rgb.g, 0) { this->window = window; set_precision(0.01); @@ -782,7 +771,7 @@ int PaletteGrn::handle_event() } PaletteBlu::PaletteBlu(ColorWindow *window, int x, int y) - : BC_FSlider(x, y, 0, 150, 200, 0, 1, window->rgb.b, 0) + : BC_FSlider(x, y, 0, xS(150), xS(200), 0, 1, window->rgb.b, 0) { this->window = window; set_precision(0.01); @@ -800,7 +789,7 @@ int PaletteBlu::handle_event() } PaletteAlpha::PaletteAlpha(ColorWindow *window, int x, int y) - : BC_FSlider(x, y, 0, 150, 200, 0, 1, window->aph, 0) + : BC_FSlider(x, y, 0, xS(150), xS(200), 0, 1, window->aph, 0) { this->window = window; set_precision(0.01); @@ -819,7 +808,7 @@ int PaletteAlpha::handle_event() } PaletteLum::PaletteLum(ColorWindow *window, int x, int y) - : BC_FSlider(x, y, 0, 150, 200, 0, 1, window->yuv.y, 0) + : BC_FSlider(x, y, 0, xS(150), xS(200), 0, 1, window->yuv.y, 0) { this->window = window; set_precision(0.01); @@ -837,7 +826,7 @@ int PaletteLum::handle_event() } PaletteCr::PaletteCr(ColorWindow *window, int x, int y) - : BC_FSlider(x, y, 0, 150, 200, 0, 1, window->yuv.u, 0) + : BC_FSlider(x, y, 0, xS(150), xS(200), 0, 1, window->yuv.u, 0) { this->window = window; set_precision(0.01); @@ -855,7 +844,7 @@ int PaletteCr::handle_event() } PaletteCb::PaletteCb(ColorWindow *window, int x, int y) - : BC_FSlider(x, y, 0, 150, 200, 0, 1, window->yuv.v, 0) + : BC_FSlider(x, y, 0, xS(150), xS(200), 0, 1, window->yuv.v, 0) { this->window = window; set_precision(0.01); @@ -989,7 +978,7 @@ int ColorWindow::alpha8() PaletteNum::PaletteNum(ColorWindow *window, int x, int y, float &output, float min, float max) - : BC_TumbleTextBox(window, output, min, max, x, y, 64) + : BC_TumbleTextBox(window, output, min, max, x, y, xS(64)) { this->window = window; this->output = &output; @@ -1035,7 +1024,7 @@ int PaletteAPH::handle_event() } PaletteHexButton::PaletteHexButton(ColorWindow *window, int x, int y) - : BC_GenericButton(x, y, 50, "#") + : BC_GenericButton(x, y, xS(50), "#") { this->window = window; set_tooltip(_("hex rgb color")); @@ -1051,7 +1040,7 @@ int PaletteHexButton::handle_event() } PaletteHex::PaletteHex(ColorWindow *window, int x, int y, const char *hex) - : BC_TextBox(x, y, 100, 1, hex) + : BC_TextBox(x, y, xS(100), 1, hex) { this->window = window; } @@ -1104,7 +1093,7 @@ int PaletteGrabButton::handle_event() } PaletteHistory::PaletteHistory(ColorWindow *window, int x, int y) - : BC_SubWindow(x,y, 200, 24) + : BC_SubWindow(x,y, xS(200), yS(24)) { this->window = window; button_down = 0; diff --git a/cinelerra-5.1/cinelerra/commercials.C b/cinelerra-5.1/cinelerra/commercials.C index 3a3de586..a3461b6d 100644 --- a/cinelerra-5.1/cinelerra/commercials.C +++ b/cinelerra-5.1/cinelerra/commercials.C @@ -164,7 +164,7 @@ put_clip(File *file, int track, double position, double length) clip_id = mdb->clip_id(); cancelled = 0; - scan_status = new ScanStatus(this, 30, 30, 1, 1, + scan_status = new ScanStatus(this, xS(30), yS(30), 1, 1, cancelled, _("Cutting Ads")); scan_status->update_length(0, frames); scan_status->update_position(0, 0); @@ -574,7 +574,7 @@ int Commercials:: scan_media() { cancelled = 0; - scan_status = new ScanStatus(this, 30, 30, 2, 2, + scan_status = new ScanStatus(this, xS(30), yS(30), 2, 2, cancelled, _("Cutting Ads")); if( !openDb() ) { scan_video(); @@ -697,11 +697,11 @@ update_status(int clip, double start, double end) ScanStatusGUI:: ScanStatusGUI(ScanStatus *sswindow, int x, int y, int nlines, int nbars) - : BC_Window(_("Scanning"), x, y, 340, - 40 + BC_CancelButton::calculate_h() + + : BC_Window(_("Scanning"), x, y, xS(340), + yS(40) + BC_CancelButton::calculate_h() + (BC_Title::calculate_h((BC_WindowBase*) sswindow-> - commercials->mwindow->gui, _("My")) + 5) * nlines + - (BC_ProgressBar::calculate_h() + 5) * nbars, 0, 0, 0) + commercials->mwindow->gui, _("My")) + yS(5)) * nlines + + (BC_ProgressBar::calculate_h() + yS(5)) * nbars, 0, 0, 0) { this->sswindow = sswindow; this->nlines = nlines; @@ -720,16 +720,18 @@ ScanStatusGUI:: void ScanStatusGUI:: create_objects(const char *text) { + int xs10 = xS(10), xs20 = xS(20); + int ys5 = yS(5), ys10 = yS(10); lock_window("ScanStatusGUI::create_objects"); - int x = 10, y = 10; + int x = xs10, y = ys10; int dy = BC_Title::calculate_h((BC_WindowBase*) sswindow-> - commercials->mwindow->gui, "My") + 5; + commercials->mwindow->gui, "My") + ys5; for( int i=0; igui->get_abs_cursor_x(1), + mwindow->gui->get_abs_cursor_x(1), mwindow->gui->get_abs_cursor_y(1), - 375, - 160) + xS(375), yS(160)) { this->mwindow = mwindow; } @@ -45,7 +44,7 @@ ConfirmQuitWindow::~ConfirmQuitWindow() void ConfirmQuitWindow::create_objects(char *string) { - int x = 10, y = 10; + int x = xS(10), y = yS(10); BC_Title *title; lock_window("ConfirmQuitWindow::create_objects"); @@ -62,8 +61,8 @@ void ConfirmQuitWindow::create_objects(char *string) ConfirmQuitYesButton::ConfirmQuitYesButton(MWindow *mwindow, ConfirmQuitWindow *gui) - : BC_GenericButton(10, - gui->get_h() - BC_GenericButton::calculate_h() - 10, + : BC_GenericButton(xS(10), + gui->get_h() - BC_GenericButton::calculate_h() - yS(10), _("Yes")) { set_underline(0); @@ -85,7 +84,7 @@ int ConfirmQuitYesButton::keypress_event() ConfirmQuitNoButton::ConfirmQuitNoButton(MWindow *mwindow, ConfirmQuitWindow *gui) : BC_GenericButton(gui->get_w() / 2 - BC_GenericButton::calculate_w(gui, _("No")) / 2, - gui->get_h() - BC_GenericButton::calculate_h() - 10, + gui->get_h() - BC_GenericButton::calculate_h() - yS(10), _("No")) { set_underline(0); @@ -106,8 +105,8 @@ int ConfirmQuitNoButton::keypress_event() ConfirmQuitCancelButton::ConfirmQuitCancelButton(MWindow *mwindow, ConfirmQuitWindow *gui) - : BC_GenericButton(gui->get_w() - BC_GenericButton::calculate_w(gui, _("Cancel")) - 10, - gui->get_h() - BC_GenericButton::calculate_h() - 10, + : BC_GenericButton(gui->get_w() - BC_GenericButton::calculate_w(gui, _("Cancel")) - xS(10), + gui->get_h() - BC_GenericButton::calculate_h() - yS(10), _("Cancel")) { } diff --git a/cinelerra-5.1/cinelerra/confirmsave.C b/cinelerra-5.1/cinelerra/confirmsave.C index 3542a049..7fdc98da 100644 --- a/cinelerra-5.1/cinelerra/confirmsave.C +++ b/cinelerra-5.1/cinelerra/confirmsave.C @@ -88,16 +88,16 @@ int ConfirmSave::test_files(MWindow *mwindow, ArrayList *paths) - +#define CSW_W 320 +#define CSW_H 120 ConfirmSaveWindow::ConfirmSaveWindow(MWindow *mwindow, ArrayList *list) : BC_Window(_(PROGRAM_NAME ": File Exists"), - mwindow->gui->get_abs_cursor_x(1) - 160, - mwindow->gui->get_abs_cursor_y(1) - 120, - 320, - 320) + mwindow->gui->get_abs_cursor_x(1) - CSW_W/2, + mwindow->gui->get_abs_cursor_y(1) - CSW_H/2, + CSW_W, CSW_H) { this->list = list; } @@ -109,7 +109,9 @@ ConfirmSaveWindow::~ConfirmSaveWindow() void ConfirmSaveWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10); + int ys10 = yS(10), ys30 = yS(30); + int x = xs10, y = ys10; lock_window("ConfirmSaveWindow::create_objects"); add_subwindow(new BC_OKButton(this)); add_subwindow(new BC_CancelButton(this)); @@ -117,16 +119,13 @@ void ConfirmSaveWindow::create_objects() add_subwindow(title = new BC_Title(x, y, _("The following files exist. Overwrite them?"))); - y += 30; - add_subwindow(listbox = new BC_ListBox(x, - y, - get_w() - x - 10, - get_h() - y - BC_OKButton::calculate_h() - 10, + y += ys30; + add_subwindow(listbox = new BC_ListBox(x, y, + get_w() - x - xs10, + get_h() - y - BC_OKButton::calculate_h() - ys10, LISTBOX_TEXT, list)); - y = get_h() - 40; add_subwindow(new BC_OKButton(this)); - x = get_w() - 100; add_subwindow(new BC_CancelButton(this)); show_window(1); unlock_window(); @@ -134,13 +133,14 @@ void ConfirmSaveWindow::create_objects() int ConfirmSaveWindow::resize_event(int w, int h) { - int x = 10, y = 10; + int xs10 = xS(10); + int ys10 = yS(10), ys30 = yS(30); + int x = xs10, y = ys10; title->reposition_window(x, y); - y += 30; - listbox->reposition_window(x, - y, - w - x - 10, - h - y - 50); + y += ys30; + listbox->reposition_window(x, y, + w - x - xs10, + h - y - BC_OKButton::calculate_h() - ys10); return 1; } diff --git a/cinelerra-5.1/cinelerra/cpanel.C b/cinelerra-5.1/cinelerra/cpanel.C index e73879e4..fa440711 100644 --- a/cinelerra-5.1/cinelerra/cpanel.C +++ b/cinelerra-5.1/cinelerra/cpanel.C @@ -79,8 +79,8 @@ void CPanel::create_objects() y += operation[CWINDOW_TOOL_WINDOW]->get_h(); subwindow->add_subwindow(operation[CWINDOW_TITLESAFE] = new CPanelTitleSafe(mwindow, this, x, y)); y += operation[CWINDOW_TITLESAFE]->get_h(); - x += (w - BC_Slider::get_span(1)) / 2; y += 15; - subwindow->add_subwindow(cpanel_zoom = new CPanelZoom(mwindow, this, x, y, h-y-20)); + x += (w - BC_Slider::get_span(1)) / 2; y += yS(15); + subwindow->add_subwindow(cpanel_zoom = new CPanelZoom(mwindow, this, x, y, h-y-yS(20))); } void CPanel::reposition_buttons(int x, int y, int h) @@ -95,9 +95,9 @@ void CPanel::reposition_buttons(int x, int y, int h) y += operation[i]->get_h(); } x += (w - BC_Slider::get_span(1)) / 2; - y += 15; + y += yS(15); h = this->h - this->y; - cpanel_zoom->reposition_window(x, y, w, h-y-20); + cpanel_zoom->reposition_window(x, y, w, h-y-yS(20)); cpanel_zoom->set_pointer_motion_range(h); } diff --git a/cinelerra-5.1/cinelerra/cropvideo.C b/cinelerra-5.1/cinelerra/cropvideo.C index f1c2abf5..72aa0b9d 100644 --- a/cinelerra-5.1/cinelerra/cropvideo.C +++ b/cinelerra-5.1/cinelerra/cropvideo.C @@ -94,7 +94,7 @@ int CropVideo::save_defaults() } CropVideoWindow::CropVideoWindow(MWindow *mwindow, CropVideo *thread) - : BC_Window(_(PROGRAM_NAME ": Crop"), 380, 75, 0, 0) + : BC_Window(_(PROGRAM_NAME ": Crop"), xS(380), yS(75), 0, 0) { this->mwindow = mwindow; this->thread = thread; @@ -107,11 +107,11 @@ CropVideoWindow::~CropVideoWindow() void CropVideoWindow::create_objects() { lock_window("CropVideoWindow::create_objects"); - int x = 10, y = 10; + int x = xS(10), y = yS(10); add_subwindow(new BC_Title(x, y, _("Select a region to crop in the video output window"))); - y += 30; + y += yS(30); add_subwindow(new BC_OKButton(x, y)); - x = get_w() - 100; + x = get_w() - xS(100); add_subwindow(new BC_CancelButton(x, y)); unlock_window(); } diff --git a/cinelerra-5.1/cinelerra/cwindowgui.C b/cinelerra-5.1/cinelerra/cwindowgui.C index 50938bd3..13ac058b 100644 --- a/cinelerra-5.1/cinelerra/cwindowgui.C +++ b/cinelerra-5.1/cinelerra/cwindowgui.C @@ -81,7 +81,7 @@ CWindowGUI::CWindowGUI(MWindow *mwindow, CWindow *cwindow) mwindow->session->cwindow_y, mwindow->session->cwindow_w, mwindow->session->cwindow_h, - 100, 100, 1, 1, 1, + xS(100), yS(100), 1, 1, 1, BC_WindowBase::get_resources()->bg_color, mwindow->get_cwindow_display()) { @@ -946,14 +946,7 @@ int CWindowZoom::handle_event() #ifdef USE_SLIDER CWindowSlider::CWindowSlider(MWindow *mwindow, CWindow *cwindow, int x, int y, int pixels) - : BC_PercentageSlider(x, - y, - 0, - pixels, - pixels, - 0, - 1, - 0) + : BC_PercentageSlider(x, y, 0, pixels, pixels, 0, 1, 0) { this->mwindow = mwindow; this->cwindow = cwindow; @@ -1036,15 +1029,10 @@ void CWindowTransport::goto_end() CWindowCanvas::CWindowCanvas(MWindow *mwindow, CWindowGUI *gui) - : Canvas(mwindow, - gui, - mwindow->theme->ccanvas_x, - mwindow->theme->ccanvas_y, - mwindow->theme->ccanvas_w, - mwindow->theme->ccanvas_h, - 0, - 0, - mwindow->edl->session->cwindow_scrollbars) + : Canvas(mwindow, gui, + mwindow->theme->ccanvas_x, mwindow->theme->ccanvas_y, + mwindow->theme->ccanvas_w, mwindow->theme->ccanvas_h, + 0, 0, mwindow->edl->session->cwindow_scrollbars) { this->mwindow = mwindow; this->gui = gui; @@ -1132,8 +1120,8 @@ void CWindowCanvas::draw_refresh(int flush) //printf("CWindowCanvas::draw_refresh 10\n"); } -#define CROPHANDLE_W 10 -#define CROPHANDLE_H 10 +#define CROPHANDLE_W xS(10) +#define CROPHANDLE_H yS(10) void CWindowCanvas::draw_crophandle(int x, int y) { @@ -1141,20 +1129,18 @@ void CWindowCanvas::draw_crophandle(int x, int y) } -#define CONTROL_W 10 -#define CONTROL_H 10 -#define FIRST_CONTROL_W 20 -#define FIRST_CONTROL_H 20 +#define CONTROL_W xS(10) +#define CONTROL_H yS(10) +#define FIRST_CONTROL_W xS(20) +#define FIRST_CONTROL_H yS(20) #undef BC_INFINITY #define BC_INFINITY 65536 -#define RULERHANDLE_W 16 -#define RULERHANDLE_H 16 +#define RULERHANDLE_W xS(16) +#define RULERHANDLE_H yS(16) -int CWindowCanvas::do_ruler(int draw, - int motion, - int button_press, - int button_release) +int CWindowCanvas::do_ruler(int draw, int motion, + int button_press, int button_release) { int result = 0; float x1 = mwindow->edl->session->ruler_x1; @@ -1265,9 +1251,7 @@ int CWindowCanvas::do_ruler(int draw, { double angle_value = fabs(atan((mwindow->edl->session->ruler_y2 - mwindow->edl->session->ruler_y1) / (mwindow->edl->session->ruler_x2 - mwindow->edl->session->ruler_x1)) * - 360 / - 2 / - M_PI); + 360 / 2 / M_PI); double distance_value = sqrt(SQR(mwindow->edl->session->ruler_x2 - mwindow->edl->session->ruler_x1) + SQR(mwindow->edl->session->ruler_y2 - mwindow->edl->session->ruler_y1)); @@ -1315,9 +1299,7 @@ int CWindowCanvas::do_ruler(int draw, { double angle_value = fabs(atan((mwindow->edl->session->ruler_y2 - mwindow->edl->session->ruler_y1) / (mwindow->edl->session->ruler_x2 - mwindow->edl->session->ruler_x1)) * - 360 / - 2 / - M_PI); + 360 / 2 / M_PI); double distance_value = sqrt(SQR(mwindow->edl->session->ruler_x2 - mwindow->edl->session->ruler_x1) + SQR(mwindow->edl->session->ruler_y2 - mwindow->edl->session->ruler_y1)); @@ -1813,15 +1795,13 @@ int CWindowCanvas::do_mask(int &redraw, int &rerender, // Make copy of current parameters in local keyframe gui->mask_keyframe = (MaskAuto*)gui->cwindow->calculate_affected_auto( - mask_autos, - 0); + mask_autos, 0); gui->orig_mask_keyframe->copy_data(gui->mask_keyframe); #else gui->mask_keyframe = (MaskAuto*)gui->cwindow->calculate_affected_auto( - mask_autos, - 1); + mask_autos, 1); #endif } SubMask *mask = gui->mask_keyframe->get_submask(mwindow->edl->session->cwindow_mask); @@ -3128,7 +3108,7 @@ int CWindowCanvas::test_bezier(int button_press, float z_val = gui->affected_z->get_value(); if( gui->translating_zoom ) { - float z = gui->center_z + (cursor_y - gui->y_origin) / 128; + float z = gui->center_z + (cursor_y - gui->y_origin) / yS(128); if( z < 0 ) z = 0; if( !EQUIV(z_val, z) ) { rerender = 1; diff --git a/cinelerra-5.1/cinelerra/cwindowtool.C b/cinelerra-5.1/cinelerra/cwindowtool.C index 88a524d7..64c3c78e 100644 --- a/cinelerra-5.1/cinelerra/cwindowtool.C +++ b/cinelerra-5.1/cinelerra/cwindowtool.C @@ -263,20 +263,10 @@ void CWindowTool::update_values() CWindowToolGUI::CWindowToolGUI(MWindow *mwindow, - CWindowTool *thread, - const char *title, - int w, - int h) + CWindowTool *thread, const char *title, int w, int h) : BC_Window(title, - mwindow->session->ctool_x, - mwindow->session->ctool_y, - w, - h, - w, - h, - 0, - 0, - 1) + mwindow->session->ctool_x, mwindow->session->ctool_y, + w, h, w, h, 0, 0, 1) { this->mwindow = mwindow; this->thread = thread; @@ -354,14 +344,14 @@ void CWindowToolGUI::draw_preview(int changed_edl) CWindowCoord::CWindowCoord(CWindowToolGUI *gui, int x, int y, float value, int log_increment = 0) - : BC_TumbleTextBox(gui, (float)value, (float)-65536, (float)65536, x, y, 70, 3) + : BC_TumbleTextBox(gui, (float)value, (float)-65536, (float)65536, x, y, xS(70), 3) { this->gui = gui; set_log_floatincrement(log_increment); } CWindowCoord::CWindowCoord(CWindowToolGUI *gui, int x, int y, int value) - : BC_TumbleTextBox(gui, (int64_t)value, (int64_t)-65536, (int64_t)65536, x, y, 70) + : BC_TumbleTextBox(gui, (int64_t)value, (int64_t)-65536, (int64_t)65536, x, y, xS(70)) { this->gui = gui; } @@ -404,11 +394,11 @@ const char *CWindowCropOpMode::crop_ops[] = { CWindowCropOpMode::CWindowCropOpMode(MWindow *mwindow, CWindowCropGUI *crop_gui, int mode, int x, int y) - : BC_PopupMenu(x, y, 140, _(crop_ops[mode]), 1) + : BC_PopupMenu(x, y, xS(140), _(crop_ops[mode]), 1) { - this->mwindow = mwindow; - this->crop_gui = crop_gui; - this->mode = mode; + this->mwindow = mwindow; + this->crop_gui = crop_gui; + this->mode = mode; } CWindowCropOpMode::~CWindowCropOpMode() { @@ -446,11 +436,7 @@ int CWindowCropOpItem::handle_event() CWindowCropGUI::CWindowCropGUI(MWindow *mwindow, CWindowTool *thread) - : CWindowToolGUI(mwindow, - thread, - _(PROGRAM_NAME ": Crop"), - 330, - 100) + : CWindowToolGUI(mwindow, thread, _(PROGRAM_NAME ": Crop"), xS(330), yS(100)) { } @@ -461,13 +447,15 @@ CWindowCropGUI::~CWindowCropGUI() void CWindowCropGUI::create_objects() { - int x = 10, y = 10; + int xs5 = xS(5), xs10 = xS(10); + int ys5 = yS(5), ys10 = yS(10); + int x = xs10, y = ys10; BC_Title *title; lock_window("CWindowCropGUI::create_objects"); int column1 = 0; int pad = MAX(BC_TextBox::calculate_h(this, MEDIUMFONT, 1, 1), - BC_Title::calculate_h(this, "X")) + 5; + BC_Title::calculate_h(this, "X")) + ys5; add_subwindow(title = new BC_Title(x, y, "X1:")); column1 = MAX(column1, title->get_w()); y += pad; @@ -476,8 +464,8 @@ void CWindowCropGUI::create_objects() y += pad; add_subwindow(new CWindowCropApply(mwindow, this, x, y)); - x += column1 + 5; - y = 10; + x += column1 + xs5; + y = ys10; x1 = new CWindowCoord(thread->tool_gui, x, y, mwindow->edl->session->crop_x1); x1->create_objects(); @@ -489,8 +477,8 @@ void CWindowCropGUI::create_objects() width->set_boundaries((int64_t)1, (int64_t)65536); - x += x1->get_w() + 10; - y = 10; + x += x1->get_w() + xs10; + y = ys10; int column2 = 0; add_subwindow(title = new BC_Title(x, y, "Y1:")); column2 = MAX(column2, title->get_w()); @@ -499,8 +487,8 @@ void CWindowCropGUI::create_objects() column2 = MAX(column2, title->get_w()); y += pad; - y = 10; - x += column2 + 5; + y = ys10; + x += column2 + xs5; y1 = new CWindowCoord(thread->tool_gui, x, y, mwindow->edl->session->crop_y1); y1->create_objects(); @@ -539,10 +527,10 @@ void CWindowCropGUI::handle_event() mwindow->edl->session->crop_y1; mwindow->edl->session->crop_y1 = atol(y1->get_text()); } - mwindow->edl->session->crop_x2 = atol(width->get_text()) + - mwindow->edl->session->crop_x1; - mwindow->edl->session->crop_y2 = atol(height->get_text()) + - mwindow->edl->session->crop_y1; + mwindow->edl->session->crop_x2 = atol(width->get_text()) + + mwindow->edl->session->crop_x1; + mwindow->edl->session->crop_y2 = atol(height->get_text()) + + mwindow->edl->session->crop_y1; update(); mwindow->cwindow->gui->canvas->redraw(1); } @@ -559,7 +547,7 @@ void CWindowCropGUI::update() CWindowEyedropGUI::CWindowEyedropGUI(MWindow *mwindow, CWindowTool *thread) - : CWindowToolGUI(mwindow, thread, _(PROGRAM_NAME ": Color"), 220, 290) + : CWindowToolGUI(mwindow, thread, _(PROGRAM_NAME ": Color"), xS(220), yS(290)) { } @@ -569,10 +557,11 @@ CWindowEyedropGUI::~CWindowEyedropGUI() void CWindowEyedropGUI::create_objects() { + int xs10 = xS(10), ys10 = yS(10); int margin = mwindow->theme->widget_border; - int x = 10 + margin; - int y = 10 + margin; - int x2 = 70, x3 = x2 + 60; + int x = xs10 + margin; + int y = ys10 + margin; + int x2 = xS(70), x3 = x2 + xS(60); lock_window("CWindowEyedropGUI::create_objects"); BC_Title *title0, *title1, *title2, *title3, *title4, *title5, *title6, *title7; add_subwindow(title0 = new BC_Title(x, y,_("X,Y:"))); @@ -611,7 +600,7 @@ void CWindowEyedropGUI::create_objects() add_subwindow(yuv_hex = new BC_Title(x3, this->y->get_y(), "#000000")); y = title6->get_y() + this->v->get_h() + 2*margin; - add_subwindow(sample = new BC_SubWindow(x, y, 50, 50)); + add_subwindow(sample = new BC_SubWindow(x, y, xS(50), yS(50))); y += sample->get_h() + margin; add_subwindow(use_max = new CWindowEyedropCheckBox(mwindow, this, x, y)); update(); @@ -789,7 +778,7 @@ int CWindowCurveToggle::handle_event() } -CWindowEyedropCheckBox::CWindowEyedropCheckBox(MWindow *mwindow, +CWindowEyedropCheckBox::CWindowEyedropCheckBox(MWindow *mwindow, CWindowEyedropGUI *gui, int x, int y) : BC_CheckBox(x, y, mwindow->edl->local_session->use_max, _("Use maximum")) { @@ -807,11 +796,7 @@ int CWindowEyedropCheckBox::handle_event() CWindowCameraGUI::CWindowCameraGUI(MWindow *mwindow, CWindowTool *thread) - : CWindowToolGUI(mwindow, - thread, - _(PROGRAM_NAME ": Camera"), - 170, - 170) + : CWindowToolGUI(mwindow, thread, _(PROGRAM_NAME ": Camera"), xS(170), yS(170)) { } CWindowCameraGUI::~CWindowCameraGUI() @@ -820,7 +805,9 @@ CWindowCameraGUI::~CWindowCameraGUI() void CWindowCameraGUI::create_objects() { - int x = 10, y = 10, x1; + int xs10 = xS(10), xs15 = xS(15); + int ys10 = yS(10), ys30 = yS(30); + int x = xs10, y = ys10, x1; Track *track = mwindow->cwindow->calculate_affected_track(); FloatAuto *x_auto = 0, *y_auto = 0, *z_auto = 0; BC_Title *title; @@ -839,15 +826,15 @@ void CWindowCameraGUI::create_objects() this->x->create_objects(); - y += 30; - x = 10; + y += ys30; + x = xs10; add_subwindow(title = new BC_Title(x, y, "Y:")); x += title->get_w(); this->y = new CWindowCoord(this, x, y, y_auto ? y_auto->get_value() : (float)0); this->y->create_objects(); - y += 30; - x = 10; + y += ys30; + x = xs10; add_subwindow(title = new BC_Title(x, y, "Z:")); x += title->get_w(); this->z = new CWindowCoord(this, x, y, @@ -855,29 +842,29 @@ void CWindowCameraGUI::create_objects() this->z->create_objects(); this->z->set_increment(0.01); - y += 30; - x1 = 10; + y += ys30; + x1 = xs10; add_subwindow(button = new CWindowCameraLeft(mwindow, this, x1, y)); x1 += button->get_w(); add_subwindow(button = new CWindowCameraCenter(mwindow, this, x1, y)); x1 += button->get_w(); add_subwindow(button = new CWindowCameraRight(mwindow, this, x1, y)); // additional Buttons to control the curve mode of the "current" keyframe - x1 += button->get_w() + 15; + x1 += button->get_w() + xs15; add_subwindow(this->t_smooth = new CWindowCurveToggle(Camera_Crv_Smooth, mwindow, this, x1, y)); - x1 += button->get_w() + 10; + x1 += button->get_w() + xs10; add_subwindow(this->t_linear = new CWindowCurveToggle(Camera_Crv_Linear, mwindow, this, x1, y)); y += button->get_h(); - x1 = 10; + x1 = xs10; add_subwindow(button = new CWindowCameraTop(mwindow, this, x1, y)); x1 += button->get_w(); add_subwindow(button = new CWindowCameraMiddle(mwindow, this, x1, y)); x1 += button->get_w(); add_subwindow(button = new CWindowCameraBottom(mwindow, this, x1, y)); - x1 += button->get_w() + 15; + x1 += button->get_w() + xs15; add_subwindow(this->add_keyframe = new CWindowCameraAddKeyframe(mwindow, this, x1, y)); - x1 += button->get_w() + 10; + x1 += button->get_w() + xs10; add_subwindow(this->reset = new CWindowCameraReset(mwindow, this, x1, y)); // fill in current auto keyframe values, set toggle states. @@ -897,8 +884,7 @@ void CWindowCameraGUI::handle_event() if(event_caller == x) { x_auto = (FloatAuto*)mwindow->cwindow->calculate_affected_auto( - track->automation->autos[AUTOMATION_CAMERA_X], - 1); + track->automation->autos[AUTOMATION_CAMERA_X], 1); if(x_auto) { x_auto->set_value(atof(x->get_text())); @@ -910,8 +896,7 @@ void CWindowCameraGUI::handle_event() if(event_caller == y) { y_auto = (FloatAuto*)mwindow->cwindow->calculate_affected_auto( - track->automation->autos[AUTOMATION_CAMERA_Y], - 1); + track->automation->autos[AUTOMATION_CAMERA_Y], 1); if(y_auto) { y_auto->set_value(atof(y->get_text())); @@ -923,8 +908,7 @@ void CWindowCameraGUI::handle_event() if(event_caller == z) { z_auto = (FloatAuto*)mwindow->cwindow->calculate_affected_auto( - track->automation->autos[AUTOMATION_CAMERA_Z], - 1); + track->automation->autos[AUTOMATION_CAMERA_Z], 1); if(z_auto) { float zoom = atof(z->get_text()); @@ -1003,8 +987,7 @@ int CWindowCameraLeft::handle_event() int w = 0, h = 0; track->get_source_dimensions( mwindow->edl->local_session->get_selectionstart(1), - w, - h); + w, h); if(w && h) { @@ -1035,8 +1018,7 @@ int CWindowCameraCenter::handle_event() Track *track = mwindow->cwindow->calculate_affected_track(); if(track) x_auto = (FloatAuto*)mwindow->cwindow->calculate_affected_auto( - track->automation->autos[AUTOMATION_CAMERA_X], - 1); + track->automation->autos[AUTOMATION_CAMERA_X], 1); if(x_auto) { @@ -1073,8 +1055,7 @@ int CWindowCameraRight::handle_event() int w = 0, h = 0; track->get_source_dimensions( mwindow->edl->local_session->get_selectionstart(1), - w, - h); + w, h); if(w && h) { @@ -1113,8 +1094,7 @@ int CWindowCameraTop::handle_event() int w = 0, h = 0; track->get_source_dimensions( mwindow->edl->local_session->get_selectionstart(1), - w, - h); + w, h); if(w && h) { @@ -1181,8 +1161,7 @@ int CWindowCameraBottom::handle_event() int w = 0, h = 0; track->get_source_dimensions( mwindow->edl->local_session->get_selectionstart(1), - w, - h); + w, h); if(w && h) { @@ -1228,11 +1207,7 @@ int CWindowCameraReset::handle_event() CWindowProjectorGUI::CWindowProjectorGUI(MWindow *mwindow, CWindowTool *thread) - : CWindowToolGUI(mwindow, - thread, - _(PROGRAM_NAME ": Projector"), - 170, - 170) + : CWindowToolGUI(mwindow, thread, _(PROGRAM_NAME ": Projector"), xS(170), yS(170)) { } CWindowProjectorGUI::~CWindowProjectorGUI() @@ -1240,7 +1215,9 @@ CWindowProjectorGUI::~CWindowProjectorGUI() } void CWindowProjectorGUI::create_objects() { - int x = 10, y = 10, x1; + int xs10 = xS(10), xs15 = xS(15); + int ys30 = yS(30); + int x = xs10, y = yS(10); Track *track = mwindow->cwindow->calculate_affected_track(); FloatAuto *x_auto = 0; FloatAuto *y_auto = 0; @@ -1259,15 +1236,15 @@ void CWindowProjectorGUI::create_objects() this->x = new CWindowCoord(this, x, y, x_auto ? x_auto->get_value() : (float)0); this->x->create_objects(); - y += 30; - x = 10; + y += ys30; + x = xs10; add_subwindow(title = new BC_Title(x, y, "Y:")); x += title->get_w(); this->y = new CWindowCoord(this, x, y, y_auto ? y_auto->get_value() : (float)0); this->y->create_objects(); - y += 30; - x = 10; + y += ys30; + x = xs10; add_subwindow(title = new BC_Title(x, y, "Z:")); x += title->get_w(); this->z = new CWindowCoord(this, x, y, @@ -1275,29 +1252,29 @@ void CWindowProjectorGUI::create_objects() this->z->create_objects(); this->z->set_increment(0.01); - y += 30; - x1 = 10; + y += ys30; + int x1 = xs10; add_subwindow(button = new CWindowProjectorLeft(mwindow, this, x1, y)); x1 += button->get_w(); add_subwindow(button = new CWindowProjectorCenter(mwindow, this, x1, y)); x1 += button->get_w(); add_subwindow(button = new CWindowProjectorRight(mwindow, this, x1, y)); // additional Buttons to control the curve mode of the "current" keyframe - x1 += button->get_w() + 15; + x1 += button->get_w() + xs15; add_subwindow(this->t_smooth = new CWindowCurveToggle(Projector_Crv_Smooth, mwindow, this, x1, y)); - x1 += button->get_w() + 10; + x1 += button->get_w() + xs10; add_subwindow(this->t_linear = new CWindowCurveToggle(Projector_Crv_Linear, mwindow, this, x1, y)); y += button->get_h(); - x1 = 10; + x1 = xs10; add_subwindow(button = new CWindowProjectorTop(mwindow, this, x1, y)); x1 += button->get_w(); add_subwindow(button = new CWindowProjectorMiddle(mwindow, this, x1, y)); x1 += button->get_w(); add_subwindow(button = new CWindowProjectorBottom(mwindow, this, x1, y)); - x1 += button->get_w() + 15; + x1 += button->get_w() + xs15; add_subwindow(this->add_keyframe = new CWindowProjectorAddKeyframe(mwindow, this, x1, y)); - x1 += button->get_w() + 10; + x1 += button->get_w() + xs10; add_subwindow(this->reset = new CWindowProjectorReset(mwindow, this, x1, y)); // fill in current auto keyframe values, set toggle states. @@ -1318,8 +1295,7 @@ void CWindowProjectorGUI::handle_event() if(event_caller == x) { x_auto = (FloatAuto*)mwindow->cwindow->calculate_affected_auto( - track->automation->autos[AUTOMATION_PROJECTOR_X], - 1); + track->automation->autos[AUTOMATION_PROJECTOR_X], 1); if(x_auto) { x_auto->set_value(atof(x->get_text())); @@ -1331,8 +1307,7 @@ void CWindowProjectorGUI::handle_event() if(event_caller == y) { y_auto = (FloatAuto*)mwindow->cwindow->calculate_affected_auto( - track->automation->autos[AUTOMATION_PROJECTOR_Y], - 1); + track->automation->autos[AUTOMATION_PROJECTOR_Y], 1); if(y_auto) { y_auto->set_value(atof(y->get_text())); @@ -1344,8 +1319,7 @@ void CWindowProjectorGUI::handle_event() if(event_caller == z) { z_auto = (FloatAuto*)mwindow->cwindow->calculate_affected_auto( - track->automation->autos[AUTOMATION_PROJECTOR_Z], - 1); + track->automation->autos[AUTOMATION_PROJECTOR_Z], 1); if(z_auto) { float zoom = atof(z->get_text()); @@ -1440,8 +1414,7 @@ int CWindowProjectorCenter::handle_event() Track *track = mwindow->cwindow->calculate_affected_track(); if(track) x_auto = (FloatAuto*)mwindow->cwindow->calculate_affected_auto( - track->automation->autos[AUTOMATION_PROJECTOR_X], - 1); + track->automation->autos[AUTOMATION_PROJECTOR_X], 1); if(x_auto) { @@ -1617,7 +1590,7 @@ int CWindowToolGUI::press(void (CWindowCanvas::*fn)()) CWindowMaskOnTrack::CWindowMaskOnTrack(MWindow *mwindow, CWindowMaskGUI *gui, int x, int y, int w, const char *text) - : BC_PopupTextBox(gui, 0, text, x, y, w, 120) + : BC_PopupTextBox(gui, 0, text, x, y, w, yS(120)) { this->mwindow = mwindow; this->gui = gui; @@ -1723,7 +1696,7 @@ int CWindowMaskTrackTumbler::do_event(int dir) CWindowMaskName::CWindowMaskName(MWindow *mwindow, CWindowMaskGUI *gui, int x, int y, const char *text) - : BC_PopupTextBox(gui, 0, text, x, y, 100, 160) + : BC_PopupTextBox(gui, 0, text, x, y, xS(100), yS(160)) { this->mwindow = mwindow; this->gui = gui; @@ -2055,7 +2028,7 @@ CWindowMaskAffectedPoint::CWindowMaskAffectedPoint(MWindow *mwindow, CWindowMaskGUI *gui, int x, int y) : BC_TumbleTextBox(gui, (int64_t)mwindow->cwindow->gui->affected_point, - (int64_t)0, INT64_MAX, x, y, 70) + (int64_t)0, INT64_MAX, x, y, xS(70)) { this->mwindow = mwindow; this->gui = gui; @@ -2205,7 +2178,7 @@ int CWindowMaskDrawBoundary::handle_event() CWindowMaskFeather::CWindowMaskFeather(MWindow *mwindow, CWindowMaskGUI *gui, int x, int y) - : BC_TumbleTextBox(gui, 0, INT_MIN, INT_MAX, x, y, 64, 2) + : BC_TumbleTextBox(gui, 0, INT_MIN, INT_MAX, x, y, xS(64), 2) { this->mwindow = mwindow; this->gui = gui; @@ -2336,7 +2309,7 @@ int CWindowMaskFeatherSlider::update(int r, float v, float mn, float mx) } CWindowMaskFade::CWindowMaskFade(MWindow *mwindow, CWindowMaskGUI *gui, int x, int y) - : BC_TumbleTextBox(gui, 0, -100.f, 100.f, x, y, 64, 2) + : BC_TumbleTextBox(gui, 0, -100.f, 100.f, x, y, xS(64), 2) { this->mwindow = mwindow; this->gui = gui; @@ -2643,7 +2616,7 @@ int CWindowMaskGangFeather::handle_event() CWindowMaskGUI::CWindowMaskGUI(MWindow *mwindow, CWindowTool *thread) : CWindowToolGUI(mwindow, thread, - _(PROGRAM_NAME ": Mask"), 440, 700) + _(PROGRAM_NAME ": Mask"), xS(440), yS(700)) { this->mwindow = mwindow; this->thread = thread; @@ -2669,24 +2642,28 @@ CWindowMaskGUI::~CWindowMaskGUI() void CWindowMaskGUI::create_objects() { + int t[SUBMASKS]; Theme *theme = mwindow->theme; - int x = 10, y = 10, margin = theme->widget_border, t[SUBMASKS]; + int xs10 = xS(10), ys10 = yS(10); + int x = xs10, y = ys10; + int margin = theme->widget_border; int clr_w = CWindowMaskClrMask::calculate_w(mwindow); int clr_x = get_w()-x - clr_w; lock_window("CWindowMaskGUI::create_objects"); BC_TitleBar *title_bar; - add_subwindow(title_bar = new BC_TitleBar(x, y, get_w()-2*x, 20, 10, _("Masks on Track"))); + add_subwindow(title_bar = new BC_TitleBar(x, y, get_w()-2*x, xS(20), xS(10), + _("Masks on Track"))); y += title_bar->get_h() + margin; BC_Title *title; add_subwindow(title = new BC_Title(x,y, _("Track:"))); - int x1 = x + 90, ww = clr_x-2*margin - x1; + int x1 = x + xS(90), ww = clr_x-2*margin - x1; for( int i=0,n=sizeof(t)/sizeof(t[0]); icwindow->calculate_affected_track(); const char *text = track ? track->title : ""; mwindow->cwindow->mask_track_id = track ? track->get_id() : -1; - mask_on_track = new CWindowMaskOnTrack(mwindow, this, x1, y, 100, text); + mask_on_track = new CWindowMaskOnTrack(mwindow, this, x1, y, xS(100), text); mask_on_track->create_objects(); mask_on_track->set_tooltip(_("Video track")); int x2 = x1 + mask_on_track->get_w(); @@ -2694,7 +2671,8 @@ void CWindowMaskGUI::create_objects() mwindow->edl->local_session->solo_track_id = -1; add_subwindow(mask_solo_track = new CWindowMaskSoloTrack(mwindow, this, del_x, y, 0)); y += mask_on_track->get_h() + margin; - add_subwindow(title_bar = new BC_TitleBar(x, y, get_w()-2*x, 20, 10, _("Masks"))); + add_subwindow(title_bar = new BC_TitleBar(x, y, get_w()-2*x, xS(20), xS(10), + _("Masks"))); y += title_bar->get_h() + margin; add_subwindow(title = new BC_Title(x, y, _("Mask:"))); mask_name = new CWindowMaskName(mwindow, this, x1, y, ""); @@ -2731,7 +2709,8 @@ void CWindowMaskGUI::create_objects() } add_subwindow(mask_unclr = new CWindowMaskUnclear(mwindow, this, clr_x, y)); y += mask_enables[0]->get_h() + 2*margin; - add_subwindow(title_bar = new BC_TitleBar(x, y, get_w()-2*x, 20, 10, _("Preset Shapes"))); + add_subwindow(title_bar = new BC_TitleBar(x, y, get_w()-2*x, xS(20), xS(10), + _("Preset Shapes"))); y += title_bar->get_h() + margin; add_subwindow(mask_shape_sqr = new CWindowMaskShape(mwindow, this, "mask_prst_sqr_images", MASK_SHAPE_SQUARE, t[0], y, _("Square"))); @@ -2742,14 +2721,15 @@ void CWindowMaskGUI::create_objects() add_subwindow(mask_shape_ovl = new CWindowMaskShape(mwindow, this, "mask_prst_ovl_images", MASK_SHAPE_OVAL, t[3], y, _("Oval"))); add_subwindow(mask_load_list = new CWindowMaskLoadList(mwindow, this)); - add_subwindow(mask_load = new CWindowMaskLoad(mwindow, this, t[5], y, 80)); - add_subwindow(mask_save = new CWindowMaskSave(mwindow, this, t[6], y, 80)); - add_subwindow(mask_delete = new CWindowMaskDelete(mwindow, this, t[7], y, 80)); + add_subwindow(mask_load = new CWindowMaskLoad(mwindow, this, t[5], y, xS(80))); + add_subwindow(mask_save = new CWindowMaskSave(mwindow, this, t[6], y, xS(80))); + add_subwindow(mask_delete = new CWindowMaskDelete(mwindow, this, t[7], y, xS(80))); y += mask_load->get_h() + 2*margin; - add_subwindow(title_bar = new BC_TitleBar(x, y, get_w()-2*x, 20, 10, _("Position & Scale"))); + add_subwindow(title_bar = new BC_TitleBar(x, y, get_w()-2*x, xS(20), xS(10), + _("Position & Scale"))); y += title_bar->get_h() + 2*margin; - add_subwindow(mask_center = new CWindowMaskCenter(mwindow, this, t[0], y, 80)); - add_subwindow(mask_normal = new CWindowMaskNormal(mwindow, this, t[1], y, 80)); + add_subwindow(mask_center = new CWindowMaskCenter(mwindow, this, t[0], y, xS(80))); + add_subwindow(mask_normal = new CWindowMaskNormal(mwindow, this, t[1], y, xS(80))); add_subwindow(mask_scale_x = new CWindowMaskScaleXY(mwindow, this, t[5], y, theme->get_image_set("mask_scale_x"), 0, MASK_SCALE_X, _("xlate/scale x"))); @@ -2758,7 +2738,8 @@ void CWindowMaskGUI::create_objects() add_subwindow(mask_scale_xy = new CWindowMaskScaleXY(mwindow, this, t[7], y, theme->get_image_set("mask_scale_xy"), 1, MASK_SCALE_XY, _("xlate/scale xy"))); y += mask_center->get_h() + 2*margin; - add_subwindow(title_bar = new BC_TitleBar(x, y, get_w()-2*x, 20, 10, _("Fade & Feather"))); + add_subwindow(title_bar = new BC_TitleBar(x, y, get_w()-2*x, xS(20), xS(10), + _("Fade & Feather"))); y += title_bar->get_h() + 2*margin; add_subwindow(title = new BC_Title(x, y, _("Fade:"))); @@ -2777,7 +2758,8 @@ void CWindowMaskGUI::create_objects() add_subwindow(feather_slider); add_subwindow(gang_feather = new CWindowMaskGangFeather(mwindow, this, clr_x, y)); y += feather->get_h() + 2*margin; - add_subwindow(title_bar = new BC_TitleBar(x, y, get_w()-2*x, 20, 10, _("Mask Points"))); + add_subwindow(title_bar = new BC_TitleBar(x, y, get_w()-2*x, xS(20), xS(10), + _("Mask Points"))); y += title_bar->get_h() + margin; add_subwindow(title = new BC_Title(x, y, _("Point:"))); @@ -2811,7 +2793,8 @@ void CWindowMaskGUI::create_objects() _("smooth all"), -1, 1, t[4], y, "mask_all_smooth_images")); add_subwindow(draw_boundary = new CWindowMaskDrawBoundary(mwindow, this, del_x, y)); y += this->y->get_h() + 2*margin; - add_subwindow(title_bar = new BC_TitleBar(x, y, get_w()-2*x, 20, 10, _("Pivot Point"))); + add_subwindow(title_bar = new BC_TitleBar(x, y, get_w()-2*x, xS(20), xS(10), + _("Pivot Point"))); y += title_bar->get_h() + margin; add_subwindow(title = new BC_Title(x, y, "X:")); @@ -2828,9 +2811,9 @@ void CWindowMaskGUI::create_objects() y += focus_y->get_h() + 2*margin; add_subwindow(bar = new BC_Bar(x, y, get_w()-2*x)); y += bar->get_h() + margin; - add_subwindow(this->apply_before_plugins = new CWindowMaskBeforePlugins(this, 10, y)); + add_subwindow(this->apply_before_plugins = new CWindowMaskBeforePlugins(this, x, y)); y += this->apply_before_plugins->get_h(); - add_subwindow(this->disable_opengl_masking = new CWindowDisableOpenGLMasking(this, 10, y)); + add_subwindow(this->disable_opengl_masking = new CWindowDisableOpenGLMasking(this, x, y)); add_subwindow(help = new CWindowMaskHelp(mwindow, this, del_x, y)); y += this->disable_opengl_masking->get_h() + 2*margin; help_y = y; @@ -3317,7 +3300,7 @@ int CWindowMaskLoad::handle_event() gui->mask_load_list->create_objects(); int px, py; get_abs_cursor(px, py); - return gui->mask_load_list->activate(px, py, 120,160); + return gui->mask_load_list->activate(px, py, xS(120),yS(160)); } @@ -3399,24 +3382,26 @@ void CWindowMaskPresetDialog::start_dialog(int sx, int sy, MaskAuto *keyframe) CWindowMaskPresetGUI::CWindowMaskPresetGUI(CWindowMaskPresetDialog *preset_dialog, int x, int y, const char *title) - : BC_Window(title, x, y, 320, 100, 320, 100, 0, 0, 1) + : BC_Window(title, x, y, xS(320), yS(100), xS(320), yS(100), 0, 0, 1) { this->preset_dialog = preset_dialog; } void CWindowMaskPresetGUI::create_objects() { - int x = 10, y = 10, pad = 8; + int xs8 = xS(8), xs10 = xS(10); + int ys10 = yS(10); + int x = xs10, y = ys10; lock_window("CWindowMaskPresetGUI::create_objects"); BC_Title *title; add_subwindow(title = new BC_Title(x, y, preset_dialog->keyframe ? _("Save mask:") : _("Delete mask:"))); - int x1 = x + title->get_w() + pad; - int x2 = get_w() - x - pad - x1 - + int x1 = x + title->get_w() + xs8; + int x2 = get_w() - x - xs8 - x1 - BC_WindowBase::get_resources()->listbox_button[0]->get_w(); CWindowMaskGUI *gui = preset_dialog->gui; preset_text = new CWindowMaskPresetText(this, - x1, y, x2, 120, gui->mask_name->get_text()); + x1, y, x2, yS(120), gui->mask_name->get_text()); preset_text->create_objects(); preset_text->set_tooltip(_("Mask name")); preset_text->update_items(); @@ -3669,7 +3654,7 @@ void CWindowMaskGUI::save_masks(ArrayList &masks) CWindowRulerGUI::CWindowRulerGUI(MWindow *mwindow, CWindowTool *thread) - : CWindowToolGUI(mwindow, thread, _(PROGRAM_NAME ": Ruler"), 320, 240) + : CWindowToolGUI(mwindow, thread, _(PROGRAM_NAME ": Ruler"), xS(320), yS(240)) { } @@ -3679,28 +3664,30 @@ CWindowRulerGUI::~CWindowRulerGUI() void CWindowRulerGUI::create_objects() { - int x = 10, y = 10, x1 = 100; + int xs10 = xS(10), xs200 = xS(200); + int ys5 = yS(5), ys10 = yS(10); + int x = xs10, y = ys10, x1 = xS(100); BC_Title *title; lock_window("CWindowRulerGUI::create_objects"); add_subwindow(title = new BC_Title(x, y, _("Current:"))); - add_subwindow(current = new BC_TextBox(x1, y, 200, 1, "")); - y += title->get_h() + 5; + add_subwindow(current = new BC_TextBox(x1, y, xs200, 1, "")); + y += title->get_h() + ys5; add_subwindow(title = new BC_Title(x, y, _("Point 1:"))); - add_subwindow(point1 = new BC_TextBox(x1, y, 200, 1, "")); - y += title->get_h() + 5; + add_subwindow(point1 = new BC_TextBox(x1, y, xs200, 1, "")); + y += title->get_h() + ys5; add_subwindow(title = new BC_Title(x, y, _("Point 2:"))); - add_subwindow(point2 = new BC_TextBox(x1, y, 200, 1, "")); - y += title->get_h() + 5; + add_subwindow(point2 = new BC_TextBox(x1, y, xs200, 1, "")); + y += title->get_h() + ys5; add_subwindow(title = new BC_Title(x, y, _("Deltas:"))); - add_subwindow(deltas = new BC_TextBox(x1, y, 200, 1, "")); - y += title->get_h() + 5; + add_subwindow(deltas = new BC_TextBox(x1, y, xs200, 1, "")); + y += title->get_h() + ys5; add_subwindow(title = new BC_Title(x, y, _("Distance:"))); - add_subwindow(distance = new BC_TextBox(x1, y, 200, 1, "")); - y += title->get_h() + 5; + add_subwindow(distance = new BC_TextBox(x1, y, xs200, 1, "")); + y += title->get_h() + ys5; add_subwindow(title = new BC_Title(x, y, _("Angle:"))); - add_subwindow(angle = new BC_TextBox(x1, y, 200, 1, "")); - y += title->get_h() + 10; + add_subwindow(angle = new BC_TextBox(x1, y, xs200, 1, "")); + y += title->get_h() + ys10; char string[BCTEXTLEN]; sprintf(string, _("Press Ctrl to lock ruler to the\nnearest 45%c%c angle."), @@ -3708,7 +3695,7 @@ void CWindowRulerGUI::create_objects() add_subwindow(title = new BC_Title(x, y, string)); - y += title->get_h() + 10; + y += title->get_h() + ys10; sprintf(string, _("Press Alt to translate the ruler.")); add_subwindow(title = new BC_Title(x, y, diff --git a/cinelerra-5.1/cinelerra/dbwindow.C b/cinelerra-5.1/cinelerra/dbwindow.C index d61e6363..28603bc6 100644 --- a/cinelerra-5.1/cinelerra/dbwindow.C +++ b/cinelerra-5.1/cinelerra/dbwindow.C @@ -504,39 +504,41 @@ selection_changed() void DbWindowGUI:: create_objects() { - int pady = BC_TextBox::calculate_h(this, MEDIUMFONT, 0, 1) + 5; + int xs10 = xS(10), xs15 = xS(15); + int ys5 = yS(5), ys10 = yS(10); + int pady = BC_TextBox::calculate_h(this, MEDIUMFONT, 0, 1) + ys5; int padx = BC_Title::calculate_w(this, (char*)"X", MEDIUMFONT); int x = padx/2, y = pady/4; text_x = x; text_y = y; BC_Title *title = new BC_Title(text_x, text_y, _("Text:"), MEDIUMFONT, YELLOW); add_subwindow(title); x += title->get_w(); - search_text = new DbWindowText(this, x, y, get_w()-x-10); + search_text = new DbWindowText(this, x, y, get_w()-x-xs10); add_subwindow(search_text); - x = padx; y += pady + 5; + x = padx; y += pady + ys5; title_text = new DbWindowTitleText(this, x, y); add_subwindow(title_text); x += title_text->get_w() + padx; info_text = new DbWindowInfoText(this, x, y); add_subwindow(info_text); x += title_text->get_w() + padx; match_case = new DbWindowMatchCase(this, x, y); add_subwindow(match_case); x += match_case->get_w() + padx; - x = padx; y += pady + 5; - search_x = 10; - search_y = get_h() - DbWindowStart::calculate_h() - 10; + x = padx; y += pady + ys5; + search_x = xs10; + search_y = get_h() - DbWindowStart::calculate_h() - ys10; search_start = new DbWindowStart(this, search_x, search_y); add_subwindow(search_start); - del_items_x = search_x + DbWindowStart::calculate_w(this, search_start->get_text()) + 15; + del_items_x = search_x + DbWindowStart::calculate_w(this, search_start->get_text()) + xs15; del_items_y = search_y; del_items = new DbWindowDeleteItems(this, del_items_x, del_items_y); add_subwindow(del_items); cancel_w = DbWindowCancel::calculate_w(); cancel_h = DbWindowCancel::calculate_h(); - cancel_x = get_w() - cancel_w - 10; - cancel_y = get_h() - cancel_h - 10; + cancel_x = get_w() - cancel_w - xs10; + cancel_y = get_h() - cancel_h - ys10; cancel = new DbWindowCancel(this, cancel_x, cancel_y); add_subwindow(cancel); list_x = x; list_y = y; - int list_w = get_w()-10 - list_x; - int list_h = min(search_y, cancel_y)-10 - list_y; + int list_w = get_w()-xs10 - list_x; + int list_h = min(search_y, cancel_y)-ys10 - list_y; search_list = new DbWindowList(this, list_x, list_y, list_w, list_h); add_subwindow(search_list); vicon_thread = new DbWindowVIconThread(this); @@ -552,13 +554,15 @@ create_objects() set_icon(dwindow->mwindow->theme->get_image("record_icon")); } +#define DBW_W xS(900) +#define DBW_H yS(600) DbWindowGUI:: DbWindowGUI(DbWindow *dwindow) : BC_Window(_(PROGRAM_NAME ": DbWindow"), - dwindow->mwindow->gui->get_abs_cursor_x(1) - 900 / 2, - dwindow->mwindow->gui->get_abs_cursor_y(1) - 600 / 2, - 900, 600, 400, 400) + dwindow->mwindow->gui->get_abs_cursor_x(1) - DBW_W / 2, + dwindow->mwindow->gui->get_abs_cursor_y(1) - DBW_H / 2, + DBW_W, DBW_H, xS(400), yS(400)) { this->dwindow = dwindow; @@ -592,18 +596,18 @@ DbWindowGUI(DbWindow *dwindow) search_column_titles[col_start_time] = _("Start time"); search_column_titles[col_access_time] = _("Access time"); search_column_titles[col_access_count] = _("count"); - search_column_widths[col_vicon] = 90; - search_column_widths[col_id] = 60; - search_column_widths[col_length] = 80; - search_column_widths[col_source] = 50; - search_column_widths[col_title] = 160; - search_column_widths[col_start_time] = 140; - search_column_widths[col_access_time] = 140; - search_column_widths[col_access_count] = 60; + search_column_widths[col_vicon] = xS(90); + search_column_widths[col_id] = xS(60); + search_column_widths[col_length] = xS(80); + search_column_widths[col_source] = xS(50); + search_column_widths[col_title] = xS(160); + search_column_widths[col_start_time] = xS(140); + search_column_widths[col_access_time] = xS(140); + search_column_widths[col_access_count] = xS(60); int wd = 0; for( int i=0; ireposition_window(cancel_x, cancel_y); - search_x = 10; - search_y = h - BC_GenericButton::calculate_h() - 10; + search_x = xs10; + search_y = h - BC_GenericButton::calculate_h() - ys10; search_start->reposition_window(search_x, search_y); - del_items_x = search_x + DbWindowStart::calculate_w(this, search_start->get_text()) + 15; + del_items_x = search_x + DbWindowStart::calculate_w(this, search_start->get_text()) + xs15; del_items_y = search_y; del_items->reposition_window(del_items_x,del_items_y); - int list_w = w-10 - list_x; - int list_h = min(search_y, cancel_y)-10 - list_y; + int list_w = w-xs10 - list_x; + int list_h = min(search_y, cancel_y)-ys10 - list_y; canvas_w = SWIDTH; canvas_h = SHEIGHT; - canvas_x = cancel_x - canvas_w - 15; - canvas_y = get_h() - canvas_h - 10; + canvas_x = cancel_x - canvas_w - xs15; + canvas_y = get_h() - canvas_h - ys10; canvas->reposition_window(0, canvas_x, canvas_y, canvas_w, canvas_h); // int wd = 0; // for( int i=0; ireposition_window(list_x, list_y, list_w, list_h); start_drawing(); return 1; @@ -801,8 +807,8 @@ update() if( !cp ) continue; DbSearchItem *item = new DbSearchItem(cp, LTYELLOW); if( search_columns[k] == col_vicon ) { - item->set_text_w(SWIDTH+10); - item->set_text_h(SHEIGHT+5); + item->set_text_w(SWIDTH+xS(10)); + item->set_text_h(SHEIGHT+yS(5)); item->set_searchable(0); } search_items[k].append(item); diff --git a/cinelerra-5.1/cinelerra/deleteallindexes.C b/cinelerra-5.1/cinelerra/deleteallindexes.C index c600a455..3dbc628b 100644 --- a/cinelerra-5.1/cinelerra/deleteallindexes.C +++ b/cinelerra-5.1/cinelerra/deleteallindexes.C @@ -77,8 +77,7 @@ ConfirmDeleteAllIndexes::ConfirmDeleteAllIndexes(MWindow *mwindow, char *string) : BC_Window(_(PROGRAM_NAME ": Delete All Indexes"), mwindow->gui->get_abs_cursor_x(1), mwindow->gui->get_abs_cursor_y(1), - 340, - 140) + xS(340), yS(140)) { this->string = string; } @@ -90,12 +89,12 @@ ConfirmDeleteAllIndexes::~ConfirmDeleteAllIndexes() void ConfirmDeleteAllIndexes::create_objects() { lock_window("ConfirmDeleteAllIndexes::create_objects"); - int x = 10, y = 10; + int x = xS(10), y = yS(10); add_subwindow(new BC_Title(x, y, string)); - y += 20; + y += yS(20); add_subwindow(new BC_OKButton(x, y)); - x = get_w() - 100; + x = get_w() - xS(100); add_subwindow(new BC_CancelButton(x, y)); unlock_window(); } diff --git a/cinelerra-5.1/cinelerra/dvdcreate.C b/cinelerra-5.1/cinelerra/dvdcreate.C index 5bbe2efd..8779e3c9 100644 --- a/cinelerra-5.1/cinelerra/dvdcreate.C +++ b/cinelerra-5.1/cinelerra/dvdcreate.C @@ -614,7 +614,7 @@ BC_Window* CreateDVD_Thread::new_gui() int scr_x = mwindow->gui->get_screen_x(0, -1); int scr_w = mwindow->gui->get_screen_w(0, -1); int scr_h = mwindow->gui->get_screen_h(0, -1); - int w = 520, h = 280; + int w = xS(520), h = yS(280); int x = scr_x + scr_w/2 - w/2, y = scr_h/2 - h/2; gui = new CreateDVD_GUI(this, x, y, w, h); @@ -852,7 +852,7 @@ CreateDVD_UseFFMpeg::~CreateDVD_UseFFMpeg() CreateDVD_GUI::CreateDVD_GUI(CreateDVD_Thread *thread, int x, int y, int w, int h) - : BC_Window(_(PROGRAM_NAME ": Create DVD"), x, y, w, h, 50, 50, 1, 0, 1) + : BC_Window(_(PROGRAM_NAME ": Create DVD"), x, y, w, h, xS(50), yS(50), 1, 0, 1) { this->thread = thread; at_x = at_y = tmp_x = tmp_y = 0; @@ -881,20 +881,22 @@ CreateDVD_GUI::~CreateDVD_GUI() void CreateDVD_GUI::create_objects() { + int xs10 = xS(10), xs30 = xS(30), xs35 = xS(35), xs170 = xS(170); + int ys5 = yS(5), ys10 = yS(10); lock_window("CreateDVD_GUI::create_objects"); - int pady = BC_TextBox::calculate_h(this, MEDIUMFONT, 0, 1) + 5; + int pady = BC_TextBox::calculate_h(this, MEDIUMFONT, 0, 1) + ys5; int padx = BC_Title::calculate_w(this, (char*)"X", MEDIUMFONT); int x = padx/2, y = pady/2; BC_Title *title = new BC_Title(x, y, _("Title:"), MEDIUMFONT, YELLOW); add_subwindow(title); at_x = x + title->get_w(); at_y = y; - asset_title = new CreateDVD_AssetTitle(this, at_x, at_y, get_w()-at_x-10); + asset_title = new CreateDVD_AssetTitle(this, at_x, at_y, get_w()-at_x-xs10); add_subwindow(asset_title); y += title->get_h() + pady/2; title = new BC_Title(x, y, _("Work path:"), MEDIUMFONT, YELLOW); add_subwindow(title); tmp_x = x + title->get_w(); tmp_y = y; - tmp_path = new CreateDVD_TmpPath(this, tmp_x, tmp_y, get_w()-tmp_x-35); + tmp_path = new CreateDVD_TmpPath(this, tmp_x, tmp_y, get_w()-tmp_x-xs35); add_subwindow(tmp_path); btmp_path = new BrowseButton(thread->mwindow->theme, this, tmp_path, tmp_x+tmp_path->get_w(), tmp_y, "/tmp", @@ -903,7 +905,7 @@ void CreateDVD_GUI::create_objects() y += title->get_h() + pady/2; disk_space = new CreateDVD_DiskSpace(this, x, y); add_subwindow(disk_space); - int x0 = get_w() - 170; + int x0 = get_w() - xs170; title = new BC_Title(x0, y, _("Media:"), MEDIUMFONT, YELLOW); add_subwindow(title); int x1 = x0+title->get_w()+padx; @@ -920,7 +922,7 @@ void CreateDVD_GUI::create_objects() standard = new CreateDVD_Format(this, title->get_w() + padx, y); add_subwindow(standard); standard->create_objects(); - x0 -= 30; + x0 -= xs30; title = new BC_Title(x0, y, _("Scale:"), MEDIUMFONT, YELLOW); add_subwindow(title); x1 = x0+title->get_w()+padx; @@ -934,7 +936,7 @@ void CreateDVD_GUI::create_objects() y += need_deinterlace->get_h() + pady/2; need_histogram = new CreateDVD_Histogram(this, x, y); add_subwindow(need_histogram); - y = y1; x1 += 170; + y = y1; x1 += xs170; need_inverse_telecine = new CreateDVD_InverseTelecine(this, x1, y); add_subwindow(need_inverse_telecine); y += need_inverse_telecine->get_h() + pady/2; @@ -946,7 +948,7 @@ void CreateDVD_GUI::create_objects() y += need_use_ffmpeg->get_h() + pady/2; need_resize_tracks = new CreateDVD_ResizeTracks(this, x1, y); add_subwindow(need_resize_tracks); - y = y1; x1 += 170; + y = y1; x1 += xs170; need_labeled = new CreateDVD_LabelChapters(this, x1, y); add_subwindow(need_labeled); y += need_labeled->get_h() + pady/2; @@ -954,14 +956,14 @@ void CreateDVD_GUI::create_objects() add_subwindow(need_farmed); ok_w = BC_OKButton::calculate_w(); ok_h = BC_OKButton::calculate_h(); - ok_x = 10; - ok_y = get_h() - ok_h - 10; + ok_x = xs10; + ok_y = get_h() - ok_h - ys10; ok = new CreateDVD_OK(this, ok_x, ok_y); add_subwindow(ok); cancel_w = BC_CancelButton::calculate_w(); cancel_h = BC_CancelButton::calculate_h(); - cancel_x = get_w() - cancel_w - 10, - cancel_y = get_h() - cancel_h - 10; + cancel_x = get_w() - cancel_w - xs10, + cancel_y = get_h() - cancel_h - ys10; cancel = new CreateDVD_Cancel(this, cancel_x, cancel_y); add_subwindow(cancel); show_window(); @@ -970,13 +972,15 @@ void CreateDVD_GUI::create_objects() int CreateDVD_GUI::resize_event(int w, int h) { - asset_title->reposition_window(at_x, at_y, get_w()-at_x-10); - tmp_path->reposition_window(tmp_x, tmp_y, get_w()-tmp_x-35); + int xs10 = xS(10), xs35 = xS(35); + int ys10 = yS(10); + asset_title->reposition_window(at_x, at_y, get_w()-at_x-xs10); + tmp_path->reposition_window(tmp_x, tmp_y, get_w()-tmp_x-xs35); btmp_path->reposition_window(tmp_x+tmp_path->get_w(), tmp_y); - ok_y = h - ok_h - 10; + ok_y = h - ok_h - ys10; ok->reposition_window(ok_x, ok_y); - cancel_x = w - cancel_w - 10, - cancel_y = h - cancel_h - 10; + cancel_x = w - cancel_w - xs10, + cancel_y = h - cancel_h - ys10; cancel->reposition_window(cancel_x, cancel_y); return 0; } @@ -1149,7 +1153,7 @@ int CreateDVD_FormatItem::handle_event() CreateDVD_Format::CreateDVD_Format(CreateDVD_GUI *gui, int x, int y) - : BC_PopupMenu(x, y, 180, "", 1) + : BC_PopupMenu(x, y, xS(180), "", 1) { this->gui = gui; } @@ -1201,7 +1205,7 @@ int CreateDVD_ScaleItem::handle_event() CreateDVD_Scale::CreateDVD_Scale(CreateDVD_GUI *gui, int x, int y) - : BC_PopupMenu(x, y, 100, "", 1) + : BC_PopupMenu(x, y, xS(100), "", 1) { this->gui = gui; } @@ -1227,7 +1231,7 @@ int CreateDVD_Scale::handle_event() CreateDVD_MediaSize::CreateDVD_MediaSize(CreateDVD_GUI *gui, int x, int y) - : BC_PopupTextBox(gui, 0, 0, x, y, 70,50) + : BC_PopupTextBox(gui, 0, 0, x, y, xS(70), 50) { this->gui = gui; } diff --git a/cinelerra-5.1/cinelerra/edit.C b/cinelerra-5.1/cinelerra/edit.C index e9e9f1b4..f716bb42 100644 --- a/cinelerra-5.1/cinelerra/edit.C +++ b/cinelerra-5.1/cinelerra/edit.C @@ -653,7 +653,7 @@ int Edit::select_handle(float view_start, float zoom_units, int cursor_x, int cu int64_t pixel1, pixel2; pixel1 = left; - pixel2 = pixel1 + 10; + pixel2 = pixel1 + xS(10); // test left edit // cursor_x is faked in acanvas @@ -665,7 +665,7 @@ int Edit::select_handle(float view_start, float zoom_units, int cursor_x, int cu //int64_t endproject = startproject + length; pixel2 = right; - pixel1 = pixel2 - 10; + pixel1 = pixel2 - xS(10); // test right edit if(cursor_x >= pixel1 && cursor_x <= pixel2) diff --git a/cinelerra-5.1/cinelerra/editlength.C b/cinelerra-5.1/cinelerra/editlength.C index 0cd5cd7e..188d415a 100644 --- a/cinelerra-5.1/cinelerra/editlength.C +++ b/cinelerra-5.1/cinelerra/editlength.C @@ -89,56 +89,38 @@ void EditLengthThread::start(Edit *edit) BC_DialogThread::start(); } +#define ELW_W xS(300) +#define ELW_H yS(100) + BC_Window* EditLengthThread::new_gui() { BC_DisplayInfo display_info; - int x = display_info.get_abs_cursor_x() - 150; - int y = display_info.get_abs_cursor_y() - 50; - EditLengthDialog *gui = new EditLengthDialog(mwindow, - this, - x, - y); + int x = display_info.get_abs_cursor_x() - ELW_W/2; + int y = display_info.get_abs_cursor_y() - ELW_H/2; + EditLengthDialog *gui = new EditLengthDialog(mwindow, this, x, y); gui->create_objects(); return gui; } void EditLengthThread::handle_close_event(int result) { - if(!result) - { - if(edit) - { + if(!result) { + if(edit) { // mwindow->set_edit_length(edit, length); } - else - { + else { mwindow->set_edit_length(length); } } } - - - - - - - EditLengthDialog::EditLengthDialog(MWindow *mwindow, EditLengthThread *thread, int x, int y) - : BC_Window(_(PROGRAM_NAME ": Edit length"), - x, - y, - 300, - 100, - -1, - -1, - 0, - 0, - 1) + : BC_Window(_(PROGRAM_NAME ": Edit length"), x, y, + ELW_W, ELW_H, -1, -1, 0, 0, 1) { this->mwindow = mwindow; this->thread = thread; @@ -151,9 +133,11 @@ EditLengthDialog::~EditLengthDialog() void EditLengthDialog::create_objects() { + int xs10 = xS(10), xs100 = xS(100); + int ys10 = yS(10); lock_window("EditLengthDialog::create_objects"); - add_subwindow(new BC_Title(10, 10, _("Seconds:"))); - text = new EditLengthText(mwindow, this, 100, 10); + add_subwindow(new BC_Title(xs10, ys10, _("Seconds:"))); + text = new EditLengthText(mwindow, this, xs100, ys10); text->create_objects(); add_subwindow(new BC_OKButton(this)); add_subwindow(new BC_CancelButton(this)); @@ -168,21 +152,10 @@ int EditLengthDialog::close_event() } - - - - EditLengthText::EditLengthText(MWindow *mwindow, - EditLengthDialog *gui, - int x, - int y) - : BC_TumbleTextBox(gui, - (float)gui->thread->length, - (float)0, - (float)100, - x, - y, - 100) + EditLengthDialog *gui, int x, int y) + : BC_TumbleTextBox(gui, (float)gui->thread->length, + 0.f, 100.f, x, y, xS(100)) { this->mwindow = mwindow; this->gui = gui; @@ -199,12 +172,3 @@ int EditLengthText::handle_event() return 1; } - - - - - - - - - diff --git a/cinelerra-5.1/cinelerra/edlsession.C b/cinelerra-5.1/cinelerra/edlsession.C index 4c5cfdd3..00120844 100644 --- a/cinelerra-5.1/cinelerra/edlsession.C +++ b/cinelerra-5.1/cinelerra/edlsession.C @@ -44,8 +44,9 @@ EDLSession::EDLSession(EDL *edl) for(int i = 0; i < MAXCHANNELS; i++) achannel_positions[i] = 0; assetlist_format = ASSETS_ICONS; + int xs100 = xS(100); for(int i = 0; i < ASSET_COLUMNS; i++) - asset_columns[i] = 100; + asset_columns[i] = xs100; auto_conf = new AutoConf; awindow_folder = AW_MEDIA_FOLDER; aspect_w = 4; aspect_h = 3; @@ -58,8 +59,8 @@ EDLSession::EDLSession(EDL *edl) clipboard_length = 0; // unused color_model = BC_RGBA8888; interlace_mode = ILACE_MODE_UNDETECTED; - crop_x1 = 0; crop_x2 = 320; - crop_y1 = 0; crop_y2 = 240; + crop_x1 = 0; crop_x2 = xS(320); + crop_y1 = 0; crop_y2 = yS(240); eyedrop_radius = 0; ruler_x1 = ruler_y1 = 0.0; ruler_x2 = ruler_y2 = 0.0; diff --git a/cinelerra-5.1/cinelerra/exportedl.C b/cinelerra-5.1/cinelerra/exportedl.C index 73e51cf1..f4e3805c 100644 --- a/cinelerra-5.1/cinelerra/exportedl.C +++ b/cinelerra-5.1/cinelerra/exportedl.C @@ -319,24 +319,15 @@ void ExportEDL::run() } +#define WIDTH xS(410) +#define HEIGHT yS(400) - - - - - - -#define WIDTH 410 -#define HEIGHT 400 - -static const char *default_list_titles[] = -{ +static const char *default_list_titles[] = { N_("No."), N_("Track name") }; -static int default_list_widths[] = -{ +static int default_list_widths[] = { 40, 200 }; @@ -352,7 +343,7 @@ ExportEDLWindow::ExportEDLWindow(MWindow *mwindow, ExportEDL *exportedl, ExportE this->exportasset = exportasset; for( int i=0; i<2; ++i ) { list_titles[i] = _(default_list_titles[i]); - list_widths[i] = default_list_widths[i]; + list_widths[i] = xS(default_list_widths[i]); } } @@ -363,32 +354,33 @@ ExportEDLWindow::~ExportEDLWindow() } - void ExportEDLWindow::create_objects() { + int xs5 = xS(5); + int ys5 = yS(5), ys25 = yS(25); lock_window("ExportEDLWindow::create_objects"); - int x = 5, y = 5; + int x = xs5, y = ys5; add_subwindow(new BC_Title(x, y, _("Select a file to export to:"))); - y += 25; + y += ys25; add_subwindow(path_textbox = new ExportEDLPathText(x, y, this)); - x += 300; + x += xS(300); path_recent = new BC_RecentList("EDLPATH", mwindow->defaults, - path_textbox, 10, x, y, 300, 100); + path_textbox, 10, x, y, xS(300), yS(100)); add_subwindow(path_recent); // FIX path_recent->load_items("EDLPATH"); - x += 24; + x += xS(24); add_subwindow(path_button = new BrowseButton( mwindow->theme, this, path_textbox, x, y - 4, exportasset->path, _("Output to file"), _("Select a file to write to:"), 0)); - y += 34; - x = 5; + y += xS(34); + x = xs5; add_subwindow(new BC_Title(x, y, _("Select track to be exported:"))); - y += 25; + y += ys25; items_tracks[0].remove_all_objects(); @@ -414,7 +406,7 @@ void ExportEDLWindow::create_objects() } - add_subwindow(track_list = new ExportEDLWindowTrackList(this, x, y, 400, 200)); + add_subwindow(track_list = new ExportEDLWindowTrackList(this, x, y, xS(400), yS(200))); y += 5 + track_list->get_h(); add_subwindow(new BC_Title(x, y, _("Currently only CMX 3600 format is supported"))); @@ -428,7 +420,7 @@ void ExportEDLWindow::create_objects() ExportEDLPathText::ExportEDLPathText(int x, int y, ExportEDLWindow *window) - : BC_TextBox(x, y, 300, 1, window->exportasset->path) + : BC_TextBox(x, y, xS(300), 1, window->exportasset->path) { this->window = window; } @@ -461,5 +453,3 @@ int ExportEDLWindowTrackList::handle_event() return 1; } - - diff --git a/cinelerra-5.1/cinelerra/featheredits.C b/cinelerra-5.1/cinelerra/featheredits.C index 6c0c67df..b6e414f5 100644 --- a/cinelerra-5.1/cinelerra/featheredits.C +++ b/cinelerra-5.1/cinelerra/featheredits.C @@ -78,8 +78,7 @@ FeatherEditsWindow::FeatherEditsWindow(MWindow *mwindow, long feather_samples) : BC_Window(_(PROGRAM_NAME ": Feather Edits"), mwindow->gui->get_abs_cursor_x(), mwindow->gui->get_abs_cursor_y(), - 340, - 140) + xS(340), yS(140)) { this->feather_samples = feather_samples; } @@ -91,9 +90,10 @@ FeatherEditsWindow::~FeatherEditsWindow() int FeatherEditsWindow::create_objects(int audio, int video) { + int xs10 = xS(10); + int ys10 = yS(10), ys20 = yS(20); lock_window("FeatherEditsWindow::create_objects"); - int x = 10; - int y = 10; + int x = xs10, y = ys10; this->audio = audio; this->video = video; @@ -102,12 +102,12 @@ int FeatherEditsWindow::create_objects(int audio, int video) else add_subwindow(new BC_Title(x, y, _("Feather by how many frames:"))); - y += 20; + y += ys20; char string[1024]; sprintf(string, "%d", feather_samples); add_subwindow(text = new FeatherEditsTextBox(this, string, x, y)); - y += 20; + y += ys20; add_subwindow(new BC_OKButton(x, y)); add_subwindow(new BC_CancelButton(x, y)); return 0; @@ -115,7 +115,7 @@ int FeatherEditsWindow::create_objects(int audio, int video) } FeatherEditsTextBox::FeatherEditsTextBox(FeatherEditsWindow *window, char *text, int x, int y) - : BC_TextBox(x, y, 100, 1, text) + : BC_TextBox(x, y, xS(100), 1, text) { this->window = window; } @@ -125,3 +125,4 @@ int FeatherEditsTextBox::handle_event() window->feather_samples = atol(get_text()); return 0; } + diff --git a/cinelerra-5.1/cinelerra/fileac3.C b/cinelerra-5.1/cinelerra/fileac3.C index eef48e63..f7d78c59 100644 --- a/cinelerra-5.1/cinelerra/fileac3.C +++ b/cinelerra-5.1/cinelerra/fileac3.C @@ -341,23 +341,14 @@ int FileAC3::write_samples(double **buffer, int64_t len) } - - - - - AC3ConfigAudio::AC3ConfigAudio(BC_WindowBase *parent_window, Asset *asset) : BC_Window(_(PROGRAM_NAME ": Audio Compression"), parent_window->get_abs_cursor_x(1), parent_window->get_abs_cursor_y(1), - 500, - BC_OKButton::calculate_h() + 100, - 500, - BC_OKButton::calculate_h() + 100, - 0, - 0, - 1) + xS(500), BC_OKButton::calculate_h() + yS(100), + xS(500), BC_OKButton::calculate_h() + yS(100), + 0, 0, 1) { this->parent_window = parent_window; this->asset = asset; @@ -365,15 +356,12 @@ AC3ConfigAudio::AC3ConfigAudio(BC_WindowBase *parent_window, void AC3ConfigAudio::create_objects() { - int x = 10, y = 10; - int x1 = 150; + int x = xS(10), y = yS(10); + int x1 = xS(150); lock_window("AC3ConfigAudio::create_objects"); add_tool(new BC_Title(x, y, _("Bitrate (kbps):"))); AC3ConfigAudioBitrate *bitrate; - add_tool(bitrate = - new AC3ConfigAudioBitrate(this, - x1, - y)); + add_tool(bitrate = new AC3ConfigAudioBitrate(this, x1, y)); bitrate->create_objects(); add_subwindow(new BC_OKButton(this)); @@ -388,16 +376,8 @@ int AC3ConfigAudio::close_event() } - - - - -AC3ConfigAudioBitrate::AC3ConfigAudioBitrate(AC3ConfigAudio *gui, - int x, - int y) - : BC_PopupMenu(x, - y, - 150, +AC3ConfigAudioBitrate::AC3ConfigAudioBitrate(AC3ConfigAudio *gui, int x, int y) + : BC_PopupMenu(x, y, xS(150), AC3ConfigAudioBitrate::bitrate_to_string(gui->string, gui->asset->ac3_bitrate)) { this->gui = gui; diff --git a/cinelerra-5.1/cinelerra/filedv.C b/cinelerra-5.1/cinelerra/filedv.C index bcce24b2..032f64e4 100644 --- a/cinelerra-5.1/cinelerra/filedv.C +++ b/cinelerra-5.1/cinelerra/filedv.C @@ -633,27 +633,13 @@ int FileDV::write_frames(VFrame ***frames, int len) for(int i = 0; i < asset->height; i++) cmodel_buf[i] = data + asset->width * 2 * i; - BC_CModels::transfer(cmodel_buf, - row_pointers, - cmodel_buf[0], - cmodel_buf[1], - cmodel_buf[2], - row_pointers[0], - row_pointers[1], - row_pointers[2], - 0, - 0, - asset->width, - asset->height, - 0, - 0, - asset->width, - asset->height, - temp_frame->get_color_model(), - BC_YUV422, - 0, - asset->width, - asset->width); + BC_CModels::transfer(cmodel_buf, row_pointers, + cmodel_buf[0], cmodel_buf[1], cmodel_buf[2], + row_pointers[0], row_pointers[1], row_pointers[2], + 0, 0, asset->width, asset->height, + 0, 0, asset->width, asset->height, + temp_frame->get_color_model(), BC_YUV422, 0, + asset->width, asset->width); dv_encode_full_frame(encoder, cmodel_buf, e_dv_color_yuv, video_buffer); @@ -868,27 +854,13 @@ TRACE("FileDV::read_frame 69") TRACE("FileDV::read_frame 70") - BC_CModels::transfer(row_pointers, - temp_pointers, - row_pointers[0], - row_pointers[1], - row_pointers[2], - temp_pointers[0], - temp_pointers[1], - temp_pointers[2], - 0, - 0, - asset->width, - asset->height, - 0, - 0, - asset->width, - asset->height, - BC_YUV422, - frame->get_color_model(), - 0, - asset->width, - asset->width); + BC_CModels::transfer(row_pointers, temp_pointers, + row_pointers[0], row_pointers[1], row_pointers[2], + temp_pointers[0], temp_pointers[1], temp_pointers[2], + 0, 0, asset->width, asset->height, + 0, 0, asset->width, asset->height, + BC_YUV422, frame->get_color_model(), 0, + asset->width, asset->width); //for(int i = 0; i < asset->height; i++) // delete[] temp_pointers[i]; @@ -925,21 +897,16 @@ int FileDV::get_best_colormodel(Asset *asset, int driver) { case PLAYBACK_X11: return BC_RGB888; - break; case PLAYBACK_X11_XV: return BC_YUV422; - break; case PLAYBACK_DV1394: case PLAYBACK_FIREWIRE: return BC_COMPRESSED; - break; case VIDEO4LINUX2: case VIDEO4LINUX2JPEG: return BC_YUV422; - break; case CAPTURE_FIREWIRE: return BC_COMPRESSED; - break; } return BC_RGB888; } @@ -958,31 +925,12 @@ int FileDV::get_audio_offset(int64_t pos) return pos - frame * asset->sample_rate / asset->frame_rate; } - - - - - - - - - - - - - - - - - - - DVConfigAudio::DVConfigAudio(BC_WindowBase *parent_window, Asset *asset) : BC_Window(_(PROGRAM_NAME ": Audio Compression"), parent_window->get_abs_cursor_x(1), parent_window->get_abs_cursor_y(1), - 350, 250) + xS(350), yS(250)) { this->parent_window = parent_window; this->asset = asset; @@ -996,7 +944,7 @@ DVConfigAudio::~DVConfigAudio() void DVConfigAudio::create_objects() { lock_window("DVConfigAudio::create_objects"); - add_tool(new BC_Title(10, 10, _("There are no audio options for this format"))); + add_tool(new BC_Title(xS(10), yS(10), _("There are no audio options for this format"))); add_subwindow(new BC_OKButton(this)); unlock_window(); } @@ -1012,7 +960,7 @@ DVConfigVideo::DVConfigVideo(BC_WindowBase *parent_window, Asset *asset) : BC_Window(_(PROGRAM_NAME ": Video Compression"), parent_window->get_abs_cursor_x(1), parent_window->get_abs_cursor_y(1), - 350, 250) + xS(350), yS(250)) { this->parent_window = parent_window; this->asset = asset; @@ -1026,7 +974,7 @@ DVConfigVideo::~DVConfigVideo() void DVConfigVideo::create_objects() { lock_window("DVConfigVideo::create_objects"); - add_tool(new BC_Title(10, 10, _("There are no video options for this format"))); + add_tool(new BC_Title(xS(10), yS(10), _("There are no video options for this format"))); add_subwindow(new BC_OKButton(this)); unlock_window(); } diff --git a/cinelerra-5.1/cinelerra/fileexr.C b/cinelerra-5.1/cinelerra/fileexr.C index 351da2a3..998372b5 100644 --- a/cinelerra-5.1/cinelerra/fileexr.C +++ b/cinelerra-5.1/cinelerra/fileexr.C @@ -572,10 +572,8 @@ EXRUnit::~EXRUnit() EXRConfigVideo::EXRConfigVideo(BC_WindowBase *parent_window, Asset *asset) : BC_Window(_(PROGRAM_NAME ": Video Compression"), - parent_window->get_abs_cursor_x(1), - parent_window->get_abs_cursor_y(1), - 300, - BC_OKButton::calculate_h() + 100) + parent_window->get_abs_cursor_x(1), parent_window->get_abs_cursor_y(1), + xS(300), BC_OKButton::calculate_h() + yS(100)) { this->parent_window = parent_window; this->asset = asset; @@ -588,13 +586,13 @@ EXRConfigVideo::~EXRConfigVideo() void EXRConfigVideo::create_objects() { lock_window("EXRConfigVideo::create_objects"); - int x = 10, y = 10; + int x = xS(10), y = yS(10); add_subwindow(new EXRUseAlpha(this, x, y)); - y += 30; + y += yS(30); EXRCompression *menu; add_subwindow(new BC_Title(x, y, _("Compression:"))); - x += 110; - add_subwindow(menu = new EXRCompression(this, x, y, 100)); + x += xS(110); + add_subwindow(menu = new EXRCompression(this, x, y, xS(100))); menu->create_objects(); add_subwindow(new BC_OKButton(this)); show_window(1); @@ -623,9 +621,7 @@ int EXRUseAlpha::handle_event() EXRCompression::EXRCompression(EXRConfigVideo *gui, int x, int y, int w) - : BC_PopupMenu(x, - y, - w, + : BC_PopupMenu(x, y, w, FileEXR::compression_to_str(gui->asset->exr_compression)) { this->gui = gui; diff --git a/cinelerra-5.1/cinelerra/fileffmpeg.C b/cinelerra-5.1/cinelerra/fileffmpeg.C index 268f3bed..2e812301 100644 --- a/cinelerra-5.1/cinelerra/fileffmpeg.C +++ b/cinelerra-5.1/cinelerra/fileffmpeg.C @@ -46,7 +46,7 @@ FileFFMPEG::~FileFFMPEG() FFMpegConfigNum::FFMpegConfigNum(BC_Window *window, int x, int y, char *title_text, int *output) - : BC_TumbleTextBox(window, *output, -1, INT_MAX, 100, y, 100) + : BC_TumbleTextBox(window, *output, -1, INT_MAX, xS(100), y, xS(100)) { this->window = window; this->x = x; this->y = y; @@ -462,7 +462,7 @@ FFMPEGConfigAudio::FFMPEGConfigAudio(BC_WindowBase *parent_window, Asset *asset, : BC_Window(_(PROGRAM_NAME ": Audio Preset"), parent_window->get_abs_cursor_x(1), parent_window->get_abs_cursor_y(1), - 420, 420) + xS(420), yS(420)) { this->parent_window = parent_window; this->asset = asset; @@ -490,7 +490,7 @@ void FFMPEGConfigAudio::load_options() void FFMPEGConfigAudio::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); lock_window("FFMPEGConfigAudio::create_objects"); FileSystem fs; @@ -518,11 +518,11 @@ void FFMPEGConfigAudio::create_objects() strcpy(asset->acodec, presets[0]->get_text()); add_tool(new BC_Title(x, y, _("Preset:"))); - y += 25; + y += yS(25); preset_popup = new FFMPEGConfigAudioPopup(this, x, y); preset_popup->create_objects(); - y += 50; + y += yS(50); bitrate = new FFMpegAudioBitrate(this, x, y, _("Bitrate:"), &asset->ff_audio_bitrate); bitrate->create_objects(); bitrate->set_increment(1000); @@ -532,10 +532,10 @@ void FFMPEGConfigAudio::create_objects() quality->create_objects(); quality->set_increment(1); quality->set_boundaries((int64_t)-1, (int64_t)51); - y += quality->get_h() + 10; + y += quality->get_h() + yS(10); add_subwindow(new BC_Title(x, y, _("Samples:"))); - sample_format = new FFMpegSampleFormat(this, x+90, y, 100, 120); + sample_format = new FFMpegSampleFormat(this, x+xS(90), y, xS(100), yS(120)); sample_format->create_objects(); if( asset->acodec[0] ) { sample_format->update_formats(); @@ -544,7 +544,7 @@ void FFMPEGConfigAudio::create_objects() } if( !asset->ff_sample_format[0] ) strcpy(asset->ff_sample_format, _("None")); sample_format->update(asset->ff_sample_format); - y += sample_format->get_h() + 10; + y += sample_format->get_h() + yS(10); BC_Title *title = new BC_Title(x, y, _("Audio Options:")); add_subwindow(title); @@ -553,8 +553,8 @@ void FFMPEGConfigAudio::create_objects() int x1 = x + title->get_w() + 8; add_subwindow(new FFOptionsViewAudio(this, x1, y, _("view"))); - y += 25; - audio_options = new FFAudioOptions(this, x, y, get_w()-x-20, 8, + y += yS(25); + audio_options = new FFAudioOptions(this, x, y, get_w()-x-xS(20), 8, sizeof(asset->ff_audio_options)-1, asset->ff_audio_options); audio_options->create_objects(); add_subwindow(new BC_OKButton(this)); @@ -585,7 +585,7 @@ FFAudioOptions::FFAudioOptions(FFMPEGConfigAudio *audio_popup, FFMPEGConfigAudioPopup::FFMPEGConfigAudioPopup(FFMPEGConfigAudio *popup, int x, int y) - : BC_PopupTextBox(popup, &popup->presets, popup->asset->acodec, x, y, 300, 300) + : BC_PopupTextBox(popup, &popup->presets, popup->asset->acodec, x, y, xS(300), yS(300)) { this->popup = popup; } @@ -626,7 +626,7 @@ FFMPEGConfigVideo::FFMPEGConfigVideo(BC_WindowBase *parent_window, Asset *asset, : BC_Window(_(PROGRAM_NAME ": Video Preset"), parent_window->get_abs_cursor_x(1), parent_window->get_abs_cursor_y(1), - 420, 420) + xS(420), yS(420)) { this->parent_window = parent_window; this->asset = asset; @@ -657,11 +657,11 @@ void FFMPEGConfigVideo::load_options() void FFMPEGConfigVideo::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); lock_window("FFMPEGConfigVideo::create_objects"); add_subwindow(new BC_Title(x, y, _("Compression:"))); - y += 25; + y += yS(25); FileSystem fs; char option_path[BCTEXTLEN]; @@ -694,7 +694,7 @@ void FFMPEGConfigVideo::create_objects() asset->ff_video_bitrate = 0; asset->ff_video_quality = -1; } - y += 50; + y += yS(50); bitrate = new FFMpegVideoBitrate(this, x, y, _("Bitrate:"), &asset->ff_video_bitrate); bitrate->create_objects(); bitrate->set_increment(100000); @@ -704,10 +704,10 @@ void FFMPEGConfigVideo::create_objects() quality->create_objects(); quality->set_increment(1); quality->set_boundaries((int64_t)-1, (int64_t)51); - y += quality->get_h() + 10; + y += quality->get_h() + yS(10); add_subwindow(new BC_Title(x, y, _("Pixels:"))); - pixel_format = new FFMpegPixelFormat(this, x+90, y, 100, 120); + pixel_format = new FFMpegPixelFormat(this, x+xS(90), y, xS(100), yS(120)); pixel_format->create_objects(); if( asset->vcodec[0] ) { pixel_format->update_formats(); @@ -716,7 +716,7 @@ void FFMPEGConfigVideo::create_objects() } if( !asset->ff_pixel_format[0] ) strcpy(asset->ff_pixel_format, _("None")); pixel_format->update(asset->ff_pixel_format); - y += pixel_format->get_h() + 10; + y += pixel_format->get_h() + yS(10); BC_Title *title = new BC_Title(x, y, _("Video Options:")); add_subwindow(title); @@ -725,8 +725,8 @@ void FFMPEGConfigVideo::create_objects() int x1 = x + title->get_w() + 8; add_subwindow(new FFOptionsViewVideo(this, x1, y, _("view"))); - y += 25; - video_options = new FFVideoOptions(this, x, y, get_w()-x-20, 8, + y += yS(25); + video_options = new FFVideoOptions(this, x, y, get_w()-x-xS(20), 8, sizeof(asset->ff_video_options)-1, asset->ff_video_options); video_options->create_objects(); add_subwindow(new BC_OKButton(this)); @@ -756,7 +756,7 @@ FFVideoOptions::FFVideoOptions(FFMPEGConfigVideo *video_popup, FFMPEGConfigVideoPopup::FFMPEGConfigVideoPopup(FFMPEGConfigVideo *popup, int x, int y) - : BC_PopupTextBox(popup, &popup->presets, popup->asset->vcodec, x, y, 300, 300) + : BC_PopupTextBox(popup, &popup->presets, popup->asset->vcodec, x, y, xS(300), yS(300)) { this->popup = popup; } @@ -890,7 +890,7 @@ FFOptions_OptPanel:: void FFOptions_OptPanel::create_objects() { const char *cols[] = { _("option"), _("value"), }; - const int col1_w = 150; + const int col1_w = xS(150); int wids[] = { col1_w, get_w()-col1_w }; BC_ListBox::update(&items[0], &cols[0], &wids[0], sizeof(items)/sizeof(items[0])); } @@ -1456,7 +1456,7 @@ const char *FFOptions_Opt::tip() FFOptionsWindow::FFOptionsWindow(FFOptionsDialog *dialog) - : BC_Window(_(PROGRAM_NAME ": Options"), 60, 30, 640, 400) + : BC_Window(_(PROGRAM_NAME ": Options"), xS(60), yS(30), xS(640), yS(400)) { this->dialog = dialog; this->selected = 0; @@ -1468,44 +1468,46 @@ FFOptionsWindow::~FFOptionsWindow() void FFOptionsWindow::create_objects() { + int xs8 = xS(8), xs10 = xS(10); + int ys10 = yS(10); lock_window("FFOptionsWindow::create_objects"); BC_Title *title; - int x0 = 10, y0 = 10; + int x0 = xs10, y0 = ys10; int x = x0, y = y0; add_subwindow(title = new BC_Title(x, y, _("Format: "))); x += title->get_w(); add_subwindow(new BC_Title(x, y, dialog->format_name)); - x = x0 + 150; + x = x0 + xS(150); add_subwindow(title = new BC_Title(x, y, _("Codec: "))); x += title->get_w(); add_subwindow(new BC_Title(x, y, dialog->codec_name)); - x = x0; y += title->get_h() + 10; y0 = y; + x = x0; y += title->get_h() + ys10; y0 = y; add_subwindow(title = new BC_Title(x, y, _("Type: "))); - x += title->get_w() + 8; + x += title->get_w() + xs8; add_subwindow(type = new BC_Title(x, y, (char *)"")); - x = x0 + 150; + x = x0 + xS(150); add_subwindow(title = new BC_Title(x, y, _("Range: "))); - x += title->get_w() + 8; + x += title->get_w() + xs8; add_subwindow(range = new BC_Title(x, y, (char *)"")); - x = x0; y += title->get_h() + 10; - add_subwindow(units = new FFOptionsUnits(this, x, y, 120)); - x += units->get_w() + 8; - int x1 = get_w() - BC_GenericButton::calculate_w(this, _("Apply")) - 8; - add_subwindow(text = new FFOptionsText(this, x, y, x1-x - 8)); + x = x0; y += title->get_h() + ys10; + add_subwindow(units = new FFOptionsUnits(this, x, y, xS(120))); + x += units->get_w() + xs8; + int x1 = get_w() - BC_GenericButton::calculate_w(this, _("Apply")) - xs8; + add_subwindow(text = new FFOptionsText(this, x, y, x1-x - xs8)); add_subwindow(apply = new FFOptionsApply(this, x1, y)); - y += units->get_h() + 10; + y += units->get_h() + ys10; add_subwindow(kind = new FFOptionsKind(this, x1, y0, apply->get_w())); kind->create_objects(); const char *kind_text = _("Kind:"); - x1 -= BC_Title::calculate_w(this, kind_text) + 8; + x1 -= BC_Title::calculate_w(this, kind_text) + xs8; add_subwindow(kind_title = new BC_Title(x1, y0, kind_text)); y0 = y; panel_x = x0; panel_y = y0; - panel_w = get_w()-10 - panel_x; - panel_h = get_h()-10 - panel_y - BC_OKButton::calculate_h(); + panel_w = get_w()-xs10 - panel_x; + panel_h = get_h()-ys10 - panel_y - BC_OKButton::calculate_h(); panel = new FFOptions_OptPanel(this, panel_x, panel_y, panel_w, panel_h); add_subwindow(panel); add_subwindow(new BC_OKButton(this)); @@ -1524,19 +1526,21 @@ void FFOptionsWindow::draw() int FFOptionsWindow::resize_event(int w, int h) { - int x1 = w - 8 - kind->get_w(); + int xs8 = xS(8), xs10 = xS(10); + int ys10 = yS(10); + int x1 = w - xs8 - kind->get_w(); int y = kind->get_y(); kind->reposition_window(x1, y); - x1 -= kind_title->get_w() + 8; + x1 -= kind_title->get_w() + xs8; kind_title->reposition_window(x1,y); - x1 = get_w() - apply->get_w() - 8; + x1 = get_w() - apply->get_w() - xs8; int y1 = units->get_y(); apply->reposition_window(x1, y1); - int x0 = units->get_x() + units->get_w() + 8; + int x0 = units->get_x() + units->get_w() + xs8; int y0 = units->get_y(); - text->reposition_window(x0,y0, x1-x0-8); - panel_w = get_w()-10 - panel_x; - panel_h = get_h()-10 - panel_y; + text->reposition_window(x0,y0, x1-x0-xs8); + panel_w = get_w()-xs10 - panel_x; + panel_h = get_h()-ys10 - panel_y; panel->reposition_window(panel_x,panel_y, panel_w, panel_h); return 1; } diff --git a/cinelerra-5.1/cinelerra/fileflac.C b/cinelerra-5.1/cinelerra/fileflac.C index 96fdb8bd..ba769a7e 100644 --- a/cinelerra-5.1/cinelerra/fileflac.C +++ b/cinelerra-5.1/cinelerra/fileflac.C @@ -72,17 +72,7 @@ void FileFLAC::get_parameters(BC_WindowBase *parent_window, int FileFLAC::check_sig(Asset *asset, char *test) { - if(test[0] == 'f' && - test[1] == 'L' && - test[2] == 'a' && - test[3] == 'C') - { - return 1; - } - else - { - return 0; - } + return test[0]=='f' && test[1]=='L' && test[2]=='a' && test[3]=='C' ? 1 : 0; } int FileFLAC::reset_parameters_derived() @@ -223,10 +213,7 @@ int FileFLAC::open_file(int rd, int wr) FLAC__stream_encoder_set_channels(flac_encode, asset->channels); FLAC__stream_encoder_set_bits_per_sample(flac_encode, asset->bits); FLAC__stream_encoder_set_sample_rate(flac_encode, asset->sample_rate); - FLAC__stream_encoder_init_file(flac_encode, - asset->path, - 0, - 0); + FLAC__stream_encoder_init_file(flac_encode, asset->path, 0, 0); } return result; @@ -348,26 +335,11 @@ int FileFLAC::read_samples(double *buffer, int64_t len) } - - - - - - - - FLACConfigAudio::FLACConfigAudio(BC_WindowBase *parent_window, Asset *asset) : BC_Window(_(PROGRAM_NAME ": Audio Compression"), - parent_window->get_abs_cursor_x(1), - parent_window->get_abs_cursor_y(1), - 350, - 170, - -1, - -1, - 0, - 0, - 1) + parent_window->get_abs_cursor_x(1), parent_window->get_abs_cursor_y(1), + xS(350), yS(170), -1, -1, 0, 0, 1) { this->parent_window = parent_window; this->asset = asset; @@ -379,7 +351,7 @@ FLACConfigAudio::~FLACConfigAudio() void FLACConfigAudio::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); lock_window("FLACConfigAudio::create_objects"); bits_popup = new BitsPopup(this, x, y, &asset->bits, 0, 0, 0, 0, 0); bits_popup->create_objects(); diff --git a/cinelerra-5.1/cinelerra/fileformat.C b/cinelerra-5.1/cinelerra/fileformat.C index a8ff043c..6dc11781 100644 --- a/cinelerra-5.1/cinelerra/fileformat.C +++ b/cinelerra-5.1/cinelerra/fileformat.C @@ -34,10 +34,7 @@ FileFormat::FileFormat(MWindow *mwindow) : BC_Window(_(PROGRAM_NAME ": File Format"), mwindow->gui->get_abs_cursor_x(0), mwindow->gui->get_abs_cursor_y(0), - 375, - 300, - 375, - 300) + xS(375), yS(300), xS(375), yS(300)) { this->mwindow = mwindow; } @@ -64,46 +61,48 @@ void FileFormat::create_objects(Asset *asset, char *string2) void FileFormat::create_objects_(char *string2) { + int xs10 = xS(10); + int ys20 = yS(20), ys30 = yS(30); char string[1024]; - int x1 = 10, x2 = 180; - int x = x1, y = 10; + int x1 = xs10, x2 = xS(180); + int x = x1, y = xs10; lock_window("FileFormat::create_objects_"); add_subwindow(new BC_Title(x, y, string2)); - y += 20; + y += ys20; add_subwindow(new BC_Title(x, y, _("Assuming raw PCM:"))); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Channels:"))); sprintf(string, "%d", asset->channels); channels_button = new FileFormatChannels(x2, y, this, string); channels_button->create_objects(); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Sample rate:"))); sprintf(string, "%d", asset->sample_rate); add_subwindow(rate_button = new FileFormatRate(x2, y, this, string)); - add_subwindow(new SampleRatePulldown(mwindow, rate_button, x2 + 100, y)); + add_subwindow(new SampleRatePulldown(mwindow, rate_button, x2 + yS(100), y)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Bits:"))); bitspopup = new BitsPopup(this, x2, y, &asset->bits, 0, 1, 1, 0, 1); bitspopup->create_objects(); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Header length:"))); sprintf(string, "%d", asset->header); add_subwindow(header_button = new FileFormatHeader(x2, y, this, string)); - y += 30; + y += ys30; //printf("FileFormat::create_objects_ 1 %d\n", asset->byte_order); add_subwindow(new BC_Title(x, y, _("Byte order:"))); add_subwindow(lohi = new FileFormatByteOrderLOHI(x2, y, this, asset->byte_order)); add_subwindow(hilo = new FileFormatByteOrderHILO(x2 + 70, y, this, !asset->byte_order)); - y += 30; + y += ys30; add_subwindow(signed_button = new FileFormatSigned(x, y, this, asset->signed_)); add_subwindow(new BC_OKButton(this)); diff --git a/cinelerra-5.1/cinelerra/filejpeg.C b/cinelerra-5.1/cinelerra/filejpeg.C index 65dc0e3b..42dd2189 100644 --- a/cinelerra-5.1/cinelerra/filejpeg.C +++ b/cinelerra-5.1/cinelerra/filejpeg.C @@ -329,7 +329,7 @@ JPEGConfigVideo::JPEGConfigVideo(BC_WindowBase *parent_window, Asset *asset) : BC_Window(_(PROGRAM_NAME ": Video Compression"), parent_window->get_abs_cursor_x(1), parent_window->get_abs_cursor_y(1), - 400, 200) + xS(400), yS(200)) { this->parent_window = parent_window; this->asset = asset; @@ -341,14 +341,15 @@ JPEGConfigVideo::~JPEGConfigVideo() void JPEGConfigVideo::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10), ys10 = yS(10); + int x = xs10, y = ys10; lock_window("JPEGConfigVideo::create_objects"); add_subwindow(new BC_Title(x, y, _("Quality:"))); BC_ISlider *slider; - add_subwindow(slider = new BC_ISlider(x + 80, y, - 0, 200, 200, 0, 100, asset->jpeg_quality, 0, 0, + add_subwindow(slider = new BC_ISlider(x + xS(80), y, + 0, xS(200), xS(200), 0, xS(100), asset->jpeg_quality, 0, 0, &asset->jpeg_quality)); - y += slider->get_h() + 10; + y += slider->get_h() + ys10; add_subwindow(new BC_CheckBox(x, y, &asset->jpeg_sphere, _("Tag for spherical playback"))); diff --git a/cinelerra-5.1/cinelerra/filejpeglist.C b/cinelerra-5.1/cinelerra/filejpeglist.C index d1c7ba9f..4d9a9fb5 100644 --- a/cinelerra-5.1/cinelerra/filejpeglist.C +++ b/cinelerra-5.1/cinelerra/filejpeglist.C @@ -127,7 +127,7 @@ JPEGConfigVideo::JPEGConfigVideo(BC_WindowBase *parent_window, Asset *asset) : BC_Window(_(PROGRAM_NAME ": Video Compression"), parent_window->get_abs_cursor_x(), parent_window->get_abs_cursor_y(), - 400, 100) + xS(400), yS(100)) { this->parent_window = parent_window; this->asset = asset; @@ -139,11 +139,11 @@ JPEGConfigVideo::~JPEGConfigVideo() void JPEGConfigVideo::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); lock_window("JPEGConfigVideo::create_objects"); add_subwindow(new BC_Title(x, y, _("Quality:"))); - add_subwindow(new BC_ISlider(x + 80, y, 0, - 200, 200, 0, 100, asset->quality, + add_subwindow(new BC_ISlider(x + xS(80), y, 0, + 200, 200, 0, xS(100), asset->quality, 0, 0, &asset->quality)); add_subwindow(new BC_OKButton(this)); diff --git a/cinelerra-5.1/cinelerra/filempeg.C b/cinelerra-5.1/cinelerra/filempeg.C index 6c889b92..986ac928 100644 --- a/cinelerra-5.1/cinelerra/filempeg.C +++ b/cinelerra-5.1/cinelerra/filempeg.C @@ -162,13 +162,13 @@ void FileMPEG::get_info(char *title_path, char *path, char *text, int len) cp += snprintf(cp,ep-cp, _("size: %s"), string); if( mpeg3_is_program_stream(fd) ) - cp += snprintf(cp,ep-cp, _(" program stream\n")); + cp += snprintf(cp,ep-cp, _(" program stream\n")); else if( mpeg3_is_transport_stream(fd) ) - cp += snprintf(cp,ep-cp, _(" transport stream\n")); + cp += snprintf(cp,ep-cp, _(" transport stream\n")); else if( mpeg3_is_video_stream(fd) ) - cp += snprintf(cp,ep-cp, _(" video stream\n")); + cp += snprintf(cp,ep-cp, _(" video stream\n")); else if( mpeg3_is_audio_stream(fd) ) - cp += snprintf(cp,ep-cp, _(" audio stream\n")); + cp += snprintf(cp,ep-cp, _(" audio stream\n")); int64_t sdate = mpeg3_get_source_date(fd); if( !sdate ) { @@ -235,7 +235,7 @@ void FileMPEG::get_info(char *title_path, char *path, char *text, int len) ArrayList cell_times; int cell_no = 0; double cell_time; - while( !mpeg3_get_cell_time(fd, cell_no++, &cell_time) ) { + while( !mpeg3_get_cell_time(fd, cell_no++, &cell_time) ) { cell_times.append(cell_time); } if( cell_times.size() > 1 ) { @@ -287,8 +287,8 @@ void FileMPEG::get_info(char *title_path, char *path, char *text, int len) if( mpeg3_dvb_get_channel(fd,n, &major, &minor) ) continue; cp += snprintf(cp,ep-cp, "\n**chan %3d.%-3d\n", major, minor); int len = mpeg3_dvb_get_chan_info(fd, n, -1, 0, cp, 1023); - if( len < 0 ) len = snprintf(cp,ep-cp,_("no info")); - cp += len; *cp++ = '*'; *cp++ = '*'; *cp++ = '\n'; + if( len < 0 ) len = snprintf(cp,ep-cp,_("no info")); + cp += len; *cp++ = '*'; *cp++ = '*'; *cp++ = '\n'; for( int ord=0; ord<0x80; ++ord ) { for( int i=0; (len=mpeg3_dvb_get_chan_info(fd,n,ord,i,cp,1023)) >= 0; ++i ) { char *bp = cp; cp += len; @@ -355,7 +355,7 @@ int FileMPEG::reset_parameters_derived() mjpeg_out = 0; mjpeg_eof = 0; mjpeg_error = 0; - recd_fd = -1; + recd_fd = -1; fd = 0; video_out = 0; prev_track = 0; @@ -606,7 +606,7 @@ int FileMPEG::open_file(int rd, int wr) // Frame rate int frame_rate_code = -1; int ncodes = sizeof(frame_rate_codes) / sizeof(double); - for(int i = 1; i < ncodes; ++i) + for(int i = 1; i < ncodes; ++i) { if(EQUIV(asset->frame_rate, frame_rate_codes[i])) { @@ -847,7 +847,7 @@ int FileMPEG::create_toc(char *toc_path) gettimeofday(¤t_time, 0); int64_t elapsed_seconds = current_time.tv_sec - start_time.tv_sec; int64_t total_seconds = !bytes_processed ? 0 : - elapsed_seconds * total_bytes / bytes_processed; + elapsed_seconds * total_bytes / bytes_processed; int64_t eta = total_seconds - elapsed_seconds; progress.update(bytes_processed, 1); char string[BCTEXTLEN]; @@ -1713,20 +1713,10 @@ void FileMPEGVideo::run() - - - - - - - - - MPEGConfigAudio::MPEGConfigAudio(BC_WindowBase *parent_window, Asset *asset) : BC_Window(_(PROGRAM_NAME ": Audio Compression"), - parent_window->get_abs_cursor_x(1), - parent_window->get_abs_cursor_y(1), - 310, 120, -1, -1, 0, 0, 1) + parent_window->get_abs_cursor_x(1), parent_window->get_abs_cursor_y(1), + xS(310), yS(120), -1, -1, 0, 0, 1) { this->parent_window = parent_window; this->asset = asset; @@ -1738,8 +1728,8 @@ MPEGConfigAudio::~MPEGConfigAudio() void MPEGConfigAudio::create_objects() { - int x = 10, y = 10; - int x1 = 150; + int x = xS(10), y = yS(10); + int x1 = xS(150); MPEGLayer *layer; lock_window("MPEGConfigAudio::create_objects"); @@ -1755,7 +1745,7 @@ void MPEGConfigAudio::create_objects() add_tool(layer = new MPEGLayer(x1, y, this)); layer->create_objects(); - y += 30; + y += yS(30); add_tool(new BC_Title(x, y, _("Kbits per second:"))); add_tool(bitrate = new MPEGABitrate(x1, y, this)); bitrate->create_objects(); @@ -1774,7 +1764,7 @@ int MPEGConfigAudio::close_event() MPEGLayer::MPEGLayer(int x, int y, MPEGConfigAudio *gui) - : BC_PopupMenu(x, y, 100, layer_to_string(gui->asset->ampeg_derivative)) + : BC_PopupMenu(x, y, xS(100), layer_to_string(gui->asset->ampeg_derivative)) { this->gui = gui; } @@ -1794,41 +1784,24 @@ int MPEGLayer::handle_event() int MPEGLayer::string_to_layer(char *string) { - if(!strcasecmp(layer_to_string(2), string)) - return 2; - if(!strcasecmp(layer_to_string(3), string)) - return 3; - + if(!strcasecmp(layer_to_string(2), string)) return 2; + if(!strcasecmp(layer_to_string(3), string)) return 3; return 2; } char* MPEGLayer::layer_to_string(int layer) { - switch(layer) - { - case 2: - return _("II"); - break; - - case 3: - return _("III"); - break; - - default: - return _("II"); - break; + switch(layer) { + case 2: return _("II"); + case 3: return _("III"); } + return _("II"); } - - - - - MPEGABitrate::MPEGABitrate(int x, int y, MPEGConfigAudio *gui) - : BC_PopupMenu(x, y, 100, - bitrate_to_string(gui->string, gui->asset->ampeg_bitrate)) + : BC_PopupMenu(x, y, xS(100), + bitrate_to_string(gui->string, gui->asset->ampeg_bitrate)) { this->gui = gui; } @@ -1842,8 +1815,7 @@ void MPEGABitrate::set_layer(int layer) { while(total_items()) del_item(0); - if(layer == 2) - { + if(layer == 2) { add_item(new BC_MenuItem("160")); add_item(new BC_MenuItem("192")); add_item(new BC_MenuItem("224")); @@ -1851,8 +1823,7 @@ void MPEGABitrate::set_layer(int layer) add_item(new BC_MenuItem("320")); add_item(new BC_MenuItem("384")); } - else - { + else { add_item(new BC_MenuItem("8")); add_item(new BC_MenuItem("16")); add_item(new BC_MenuItem("24")); @@ -1894,18 +1865,11 @@ char* MPEGABitrate::bitrate_to_string(char *string, int bitrate) - - - - - - MPEGConfigVideo::MPEGConfigVideo(BC_WindowBase *parent_window, Asset *asset) : BC_Window(_(PROGRAM_NAME ": Video Compression"), - parent_window->get_abs_cursor_x(1), - parent_window->get_abs_cursor_y(1), - 500, 400, -1, -1, 0, 0, 1) + parent_window->get_abs_cursor_x(1), parent_window->get_abs_cursor_y(1), + xS(500), yS(400), -1, -1, 0, 0, 1) { this->parent_window = parent_window; this->asset = asset; @@ -1918,9 +1882,9 @@ MPEGConfigVideo::~MPEGConfigVideo() void MPEGConfigVideo::create_objects() { - int x = 10, y = 10; - int x1 = x + 150; - //int x2 = x + 300; + int x = xS(10), y = yS(10); + int x1 = x + xS(150); + //int x2 = x + xS(300); lock_window("MPEGConfigVideo::create_objects"); if(asset->format == FILE_MPEG) @@ -1933,7 +1897,7 @@ void MPEGConfigVideo::create_objects() add_subwindow(new BC_Title(x, y, _("Color model:"))); add_subwindow(cmodel = new MPEGColorModel(x1, y, this)); cmodel->create_objects(); - y += 30; + y += yS(30); update_cmodel_objs(); @@ -1985,71 +1949,72 @@ void MPEGConfigVideo::reset_cmodel() void MPEGConfigVideo::update_cmodel_objs() { + int xs10 = xS(10); + int ys5 = yS(5), ys30 = yS(30), ys40 = yS(40); BC_Title *title; - int x = 10; - int y = 40; - int x1 = x + 150; - int x2 = x + 280; + int x = xs10, y = ys40; + int x1 = x + xS(150); + int x2 = x + xS(280); delete_cmodel_objs(); if(asset->vmpeg_cmodel == BC_YUV420P) { - add_subwindow(title = new BC_Title(x, y + 5, _("Format Preset:"))); + add_subwindow(title = new BC_Title(x, y + ys5, _("Format Preset:"))); titles.append(title); add_subwindow(preset = new MPEGPreset(x1, y, this)); preset->create_objects(); - y += 30; + y += ys30; } - add_subwindow(title = new BC_Title(x, y + 5, _("Derivative:"))); + add_subwindow(title = new BC_Title(x, y + ys5, _("Derivative:"))); titles.append(title); add_subwindow(derivative = new MPEGDerivative(x1, y, this)); derivative->create_objects(); - y += 30; + y += ys30; - add_subwindow(title = new BC_Title(x, y + 5, _("Bitrate:"))); + add_subwindow(title = new BC_Title(x, y + ys5, _("Bitrate:"))); titles.append(title); add_subwindow(bitrate = new MPEGBitrate(x1, y, this)); add_subwindow(fixed_bitrate = new MPEGFixedBitrate(x2, y, this)); - y += 30; + y += ys30; add_subwindow(title = new BC_Title(x, y, _("Quantization:"))); titles.append(title); quant = new MPEGQuant(x1, y, this); quant->create_objects(); add_subwindow(fixed_quant = new MPEGFixedQuant(x2, y, this)); - y += 30; + y += ys30; add_subwindow(title = new BC_Title(x, y, _("I frame distance:"))); titles.append(title); iframe_distance = new MPEGIFrameDistance(x1, y, this); iframe_distance->create_objects(); - y += 30; + y += ys30; if(asset->vmpeg_cmodel == BC_YUV420P) { - add_subwindow(title = new BC_Title(x, y, _("P frame distance:"))); + add_subwindow(title = new BC_Title(x, y, _("P frame distance:"))); titles.append(title); pframe_distance = new MPEGPFrameDistance(x1, y, this); pframe_distance->create_objects(); - y += 30; + y += ys30; add_subwindow(top_field_first = new BC_CheckBox(x, y, &asset->vmpeg_field_order, _("Bottom field first"))); - y += 30; + y += ys30; } add_subwindow(progressive = new BC_CheckBox(x, y, &asset->vmpeg_progressive, _("Progressive frames"))); - y += 30; + y += ys30; add_subwindow(denoise = new BC_CheckBox(x, y, &asset->vmpeg_denoise, _("Denoise"))); - y += 30; + y += ys30; add_subwindow(seq_codes = new BC_CheckBox(x, y, &asset->vmpeg_seq_codes, _("Sequence start codes in every GOP"))); } MPEGDerivative::MPEGDerivative(int x, int y, MPEGConfigVideo *gui) - : BC_PopupMenu(x, y, 150, derivative_to_string(gui->asset->vmpeg_derivative)) + : BC_PopupMenu(x, y, xS(150), derivative_to_string(gui->asset->vmpeg_derivative)) { this->gui = gui; } @@ -2084,7 +2049,7 @@ char* MPEGDerivative::derivative_to_string(int derivative) MPEGPreset::MPEGPreset(int x, int y, MPEGConfigVideo *gui) - : BC_PopupMenu(x, y, 200, value_to_string(gui->asset->vmpeg_preset)) + : BC_PopupMenu(x, y, xS(200), value_to_string(gui->asset->vmpeg_preset)) { this->gui = gui; } @@ -2133,17 +2098,8 @@ char* MPEGPreset::value_to_string(int derivative) } - - - - - - - - - MPEGBitrate::MPEGBitrate(int x, int y, MPEGConfigVideo *gui) - : BC_TextBox(x, y, 100, 1, gui->asset->vmpeg_bitrate) + : BC_TextBox(x, y, xS(100), 1, gui->asset->vmpeg_bitrate) { this->gui = gui; } @@ -2156,17 +2112,11 @@ int MPEGBitrate::handle_event() }; - - - MPEGQuant::MPEGQuant(int x, int y, MPEGConfigVideo *gui) : BC_TumbleTextBox(gui, - (int64_t)gui->asset->vmpeg_quantization, - (int64_t)1, - (int64_t)100, - x, - y, - 100) + (int64_t)gui->asset->vmpeg_quantization, + (int64_t)1, (int64_t)100, + x, y, xS(100)) { this->gui = gui; } @@ -2207,20 +2157,11 @@ int MPEGFixedQuant::handle_event() - - - - - - MPEGIFrameDistance::MPEGIFrameDistance(int x, int y, MPEGConfigVideo *gui) : BC_TumbleTextBox(gui, - (int64_t)gui->asset->vmpeg_iframe_distance, - (int64_t)1, - (int64_t)100, - x, - y, - 50) + (int64_t)gui->asset->vmpeg_iframe_distance, + (int64_t)1, (int64_t)100, + x, y, xS(50)) { this->gui = gui; } @@ -2232,19 +2173,11 @@ int MPEGIFrameDistance::handle_event() } - - - - - MPEGPFrameDistance::MPEGPFrameDistance(int x, int y, MPEGConfigVideo *gui) : BC_TumbleTextBox(gui, - (int64_t)gui->asset->vmpeg_pframe_distance, - (int64_t)0, - (int64_t)2, - x, - y, - 50) + (int64_t)gui->asset->vmpeg_pframe_distance, + (int64_t)0, (int64_t)2, + x, y, xS(50)) { this->gui = gui; } @@ -2256,14 +2189,8 @@ int MPEGPFrameDistance::handle_event() } - - - - - - MPEGColorModel::MPEGColorModel(int x, int y, MPEGConfigVideo *gui) - : BC_PopupMenu(x, y, 150, cmodel_to_string(gui->asset->vmpeg_cmodel)) + : BC_PopupMenu(x, y, xS(150), cmodel_to_string(gui->asset->vmpeg_cmodel)) { this->gui = gui; } @@ -2301,8 +2228,3 @@ char* MPEGColorModel::cmodel_to_string(int cmodel) } } - - - - - diff --git a/cinelerra-5.1/cinelerra/filepng.C b/cinelerra-5.1/cinelerra/filepng.C index d4b581d7..f6326079 100644 --- a/cinelerra-5.1/cinelerra/filepng.C +++ b/cinelerra-5.1/cinelerra/filepng.C @@ -336,16 +336,6 @@ FrameWriterUnit* FilePNG::new_writer_unit(FrameWriter *writer) } - - - - - - - - - - PNGUnit::PNGUnit(FilePNG *file, FrameWriter *writer) : FrameWriterUnit(writer) { @@ -358,19 +348,10 @@ PNGUnit::~PNGUnit() } - - - - - - - PNGConfigVideo::PNGConfigVideo(BC_WindowBase *parent_window, Asset *asset) : BC_Window(_(PROGRAM_NAME ": Video Compression"), - parent_window->get_abs_cursor_x(1), - parent_window->get_abs_cursor_y(1), - 200, - 100) + parent_window->get_abs_cursor_x(1), parent_window->get_abs_cursor_y(1), + xS(200), yS(100)) { this->parent_window = parent_window; this->asset = asset; @@ -383,7 +364,7 @@ PNGConfigVideo::~PNGConfigVideo() void PNGConfigVideo::create_objects() { lock_window("PNGConfigVideo::create_objects"); - int x = 10, y = 10; + int x = xS(10), y = yS(10); add_subwindow(new PNGUseAlpha(this, x, y)); add_subwindow(new BC_OKButton(this)); show_window(1); @@ -409,5 +390,3 @@ int PNGUseAlpha::handle_event() return 1; } - - diff --git a/cinelerra-5.1/cinelerra/fileppm.C b/cinelerra-5.1/cinelerra/fileppm.C index 7df92707..625223ea 100644 --- a/cinelerra-5.1/cinelerra/fileppm.C +++ b/cinelerra-5.1/cinelerra/fileppm.C @@ -195,7 +195,8 @@ int FilePPM::get_best_colormodel(Asset *asset, int driver) PPMConfigVideo::PPMConfigVideo(BC_WindowBase *gui, Asset *asset) : BC_Window(_(PROGRAM_NAME ": Video Compression"), - gui->get_abs_cursor_x(1), gui->get_abs_cursor_y(1), 200, 100) + gui->get_abs_cursor_x(1), gui->get_abs_cursor_y(1), + xS(200), yS(100)) { this->gui = gui; this->asset = asset; @@ -204,7 +205,7 @@ PPMConfigVideo::PPMConfigVideo(BC_WindowBase *gui, Asset *asset) void PPMConfigVideo::create_objects() { lock_window("PPMConfigVideo::create_objects"); - int x = 10, y = 10; + int x = xS(10), y = yS(10); add_subwindow(new BC_Title(x, y, _("PPM, RGB raw only"))); add_subwindow(new BC_OKButton(this)); show_window(1); diff --git a/cinelerra-5.1/cinelerra/filesndfile.C b/cinelerra-5.1/cinelerra/filesndfile.C index 9351378b..ffd59b46 100644 --- a/cinelerra-5.1/cinelerra/filesndfile.C +++ b/cinelerra-5.1/cinelerra/filesndfile.C @@ -371,10 +371,8 @@ void FileSndFile::get_parameters(BC_WindowBase *parent_window, SndFileConfig::SndFileConfig(BC_WindowBase *parent_window, Asset *asset) : BC_Window(_(PROGRAM_NAME ": Audio Compression"), - parent_window->get_abs_cursor_x(1), - parent_window->get_abs_cursor_y(1), - 250, - 250) + parent_window->get_abs_cursor_x(1), parent_window->get_abs_cursor_y(1), + xS(250), yS(250)) { this->parent_window = parent_window; this->asset = asset; @@ -392,8 +390,9 @@ SndFileConfig::~SndFileConfig() void SndFileConfig::create_objects() { + int xs10 = xS(10); lock_window("SndFileConfig::create_objects"); - int x = 10, y = 10; + int x = xs10, y = yS(10); bits_popup = 0; switch(asset->format) @@ -402,27 +401,27 @@ void SndFileConfig::create_objects() case FILE_PCM: case FILE_AIFF: add_tool(new BC_Title(x, y, _("Compression:"))); - y += 25; + y += yS(25); if(asset->format == FILE_WAV) bits_popup = new BitsPopup(this, x, y, &asset->bits, 0, 0, 1, 1, 0); else bits_popup = new BitsPopup(this, x, y, &asset->bits, 0, 0, 0, 0, 0); - y += 40; + y += yS(40); bits_popup->create_objects(); break; } - x = 10; + x = xs10; if(asset->format != FILE_AU) add_subwindow(new BC_CheckBox(x, y, &asset->dither, _("Dither"))); - y += 30; + y += yS(30); if(asset->format == FILE_PCM) { add_subwindow(new BC_CheckBox(x, y, &asset->signed_, _("Signed"))); - y += 35; + y += yS(35); add_subwindow(new BC_Title(x, y, _("Byte order:"))); - add_subwindow(hilo = new SndFileHILO(this, x + 100, y)); - add_subwindow(lohi = new SndFileLOHI(this, x + 170, y)); + add_subwindow(hilo = new SndFileHILO(this, x + xS(100), y)); + add_subwindow(lohi = new SndFileLOHI(this, x + xS(170), y)); } add_subwindow(new BC_OKButton(this)); show_window(1); diff --git a/cinelerra-5.1/cinelerra/filetga.C b/cinelerra-5.1/cinelerra/filetga.C index 800661e4..6eded708 100644 --- a/cinelerra-5.1/cinelerra/filetga.C +++ b/cinelerra-5.1/cinelerra/filetga.C @@ -397,27 +397,13 @@ void FileTGA::read_tga(Asset *asset, VFrame *frame, VFrame *data, VFrame* &temp) if(output_frame != frame) { - BC_CModels::transfer(frame->get_rows(), - output_frame->get_rows(), - frame->get_y(), - frame->get_u(), - frame->get_v(), - output_frame->get_y(), - output_frame->get_u(), - output_frame->get_v(), - 0, - 0, - width, - height, - 0, - 0, - frame->get_w(), - frame->get_h(), - output_frame->get_color_model(), - frame->get_color_model(), - 0, - width, - frame->get_w()); + BC_CModels::transfer(frame->get_rows(), output_frame->get_rows(), + frame->get_y(), frame->get_u(), frame->get_v(), + output_frame->get_y(), output_frame->get_u(), output_frame->get_v(), + 0, 0, width, height, + 0, 0, frame->get_w(), frame->get_h(), + output_frame->get_color_model(), frame->get_color_model(), + 0, width, frame->get_w()); } } @@ -494,27 +480,13 @@ void FileTGA::write_tga(Asset *asset, VFrame *frame, VFrame *data, VFrame* &temp } input_frame = temp; - BC_CModels::transfer(input_frame->get_rows(), - frame->get_rows(), - input_frame->get_y(), - input_frame->get_u(), - input_frame->get_v(), - frame->get_y(), - frame->get_u(), - frame->get_v(), - 0, - 0, - frame->get_w(), - frame->get_h(), - 0, - 0, - frame->get_w(), - frame->get_h(), - frame->get_color_model(), - input_frame->get_color_model(), - 0, - frame->get_w(), - frame->get_w()); + BC_CModels::transfer(input_frame->get_rows(), frame->get_rows(), + input_frame->get_y(), input_frame->get_u(), input_frame->get_v(), + frame->get_y(), frame->get_u(), frame->get_v(), + 0, 0, frame->get_w(), frame->get_h(), + 0, 0, frame->get_w(), frame->get_h(), + frame->get_color_model(), input_frame->get_color_model(), + 0, frame->get_w(), frame->get_w()); } //printf("FileTGA::write_tga 1\n"); @@ -586,26 +558,14 @@ void FileTGA::write_data(unsigned char *buffer, //printf("FileTGA::write_data 2 %d\n", len); } -void FileTGA::read_line(unsigned char *row, - unsigned char *data, - int64_t &file_offset, - int image_type, - int bpp, - int image_compression, - int bytes, - int width, - int fliphoriz, - int alphabits, - int data_size) +void FileTGA::read_line(unsigned char *row, unsigned char *data, + int64_t &file_offset, int image_type, int bpp, int image_compression, + int bytes, int width, int fliphoriz, int alphabits, int data_size) { if(file_offset >= data_size) return; if(image_compression == TGA_COMP_RLE) { - rle_read(row, - data, - file_offset, - bytes, - width); + rle_read(row, data, file_offset, bytes, width); } else { @@ -638,24 +598,21 @@ void FileTGA::read_line(unsigned char *row, void FileTGA::flip_line(unsigned char *row, int bytes, int width) { - unsigned char temp; + unsigned char temp; unsigned char *alt; int x, s; - alt = row + (bytes * (width - 1)); - for (x = 0; x * 2 <= width; x++) - { - for(s = 0; s < bytes; ++s) - { + for (x = 0; x * 2 <= width; x++) { + for(s = 0; s < bytes; ++s) { temp = row[s]; row[s] = alt[s]; alt[s] = temp; } - row += bytes; - alt -= bytes; - } + row += bytes; + alt -= bytes; + } } void FileTGA::rle_read(unsigned char *row, @@ -719,10 +676,10 @@ void FileTGA::rle_write(unsigned char *buffer, int64_t &file_offset) { int repeat = 0; - int direct = 0; - unsigned char *from = buffer; + int direct = 0; + unsigned char *from = buffer; unsigned char output; - int x; + int x; for(x = 1; x < width; ++x) { @@ -799,44 +756,26 @@ void FileTGA::rle_write(unsigned char *buffer, } -void FileTGA::bgr2rgb(unsigned char *dest, - unsigned char *src, - int width, - int bytes, - int alpha) +void FileTGA::bgr2rgb(unsigned char *dest, unsigned char *src, + int width, int bytes, int alpha) { int x; unsigned char r, g, b; - if(alpha) - { - for(x = 0; x < width; x++) - { - r = src[2]; - g = src[1]; - b = src[0]; - *(dest++) = r; - *(dest++) = g; - *(dest++) = b; - *(dest++) = src[3]; - - src += bytes; + if(alpha) { + for(x = 0; x < width; x++) { + r = src[2]; g = src[1]; b = src[0]; + *(dest++) = r; *(dest++) = g; *(dest++) = b; + *(dest++) = src[3]; src += bytes; } - } - else - { - for(x = 0; x < width; x++) - { - r = src[2]; - g = src[1]; - b = src[0]; - *(dest++) = r; - *(dest++) = g; - *(dest++) = b; - + } + else { + for(x = 0; x < width; x++) { + r = src[2]; g = src[1]; b = src[0]; + *(dest++) = r; *(dest++) = g; *(dest++) = b; src += bytes; } - } + } } void FileTGA::upsample(unsigned char *dest, @@ -848,30 +787,22 @@ void FileTGA::upsample(unsigned char *dest, dest += (width - 1) * 3; src += (width - 1) * bytes; - for(x = width - 1; x >= 0; x--) - { - dest[0] = ((src[1] << 1) & 0xf8); - dest[0] += (dest[0] >> 5); + for(x = width - 1; x >= 0; x--) { + dest[0] = ((src[1] << 1) & 0xf8); + dest[0] += (dest[0] >> 5); - dest[1] = ((src[0] & 0xe0) >> 2) + ((src[1] & 0x03) << 6); - dest[1] += (dest[1] >> 5); + dest[1] = ((src[0] & 0xe0) >> 2) + ((src[1] & 0x03) << 6); + dest[1] += (dest[1] >> 5); - dest[2] = ((src[0] << 3) & 0xf8); - dest[2] += (dest[2] >> 5); + dest[2] = ((src[0] << 3) & 0xf8); + dest[2] += (dest[2] >> 5); - dest -= 3; - src -= bytes; - } + dest -= 3; + src -= bytes; + } } - - - - - - - TGAUnit::TGAUnit(FileTGA *file, FrameWriter *writer) : FrameWriterUnit(writer) { @@ -885,23 +816,10 @@ TGAUnit::~TGAUnit() } - - - - - - - - - - - TGAConfigVideo::TGAConfigVideo(BC_WindowBase *gui, Asset *asset) : BC_Window(_(PROGRAM_NAME ": Video Compression"), - gui->get_abs_cursor_x(1), - gui->get_abs_cursor_y(1), - 400, - 100) + gui->get_abs_cursor_x(1), gui->get_abs_cursor_y(1), + xS(400), yS(100)) { this->gui = gui; this->asset = asset; @@ -920,14 +838,11 @@ TGAConfigVideo::~TGAConfigVideo() void TGAConfigVideo::create_objects() { lock_window("TGAConfigVideo::create_objects"); - int x = 10, y = 10; + int x = xS(10), y = yS(10); add_subwindow(new BC_Title(x, y, _("Compression:"))); TGACompression *textbox = new TGACompression(this, - x + 110, - y, - asset, - &compression_items); + x + xS(110), y, asset, &compression_items); textbox->create_objects(); add_subwindow(new BC_OKButton(this)); show_window(1); @@ -941,18 +856,11 @@ int TGAConfigVideo::close_event() } -TGACompression::TGACompression(TGAConfigVideo *gui, - int x, - int y, - Asset *asset, - ArrayList *compression_items) - : BC_PopupTextBox(gui, - compression_items, - FileTGA::compression_to_str(gui->asset->vcodec), - x, - y, - 200, - 200) +TGACompression::TGACompression(TGAConfigVideo *gui, int x, int y, + Asset *asset, ArrayList *compression_items) + : BC_PopupTextBox(gui, compression_items, + FileTGA::compression_to_str(gui->asset->vcodec), + x, y, xS(200), yS(200)) { this->asset = asset; } diff --git a/cinelerra-5.1/cinelerra/filetiff.C b/cinelerra-5.1/cinelerra/filetiff.C index fb1449f1..cde59a0b 100644 --- a/cinelerra-5.1/cinelerra/filetiff.C +++ b/cinelerra-5.1/cinelerra/filetiff.C @@ -514,27 +514,13 @@ int FileTIFF::write_frame(VFrame *frame, VFrame *data, FrameWriterUnit *unit) new VFrame(asset->width, asset->height, color_model, 0); } - BC_CModels::transfer(tiff_unit->temp->get_rows(), - frame->get_rows(), - tiff_unit->temp->get_y(), - tiff_unit->temp->get_u(), - tiff_unit->temp->get_v(), - frame->get_y(), - frame->get_u(), - frame->get_v(), - 0, - 0, - frame->get_w(), - frame->get_h(), - 0, - 0, - frame->get_w(), - frame->get_h(), - frame->get_color_model(), - color_model, - 0, - frame->get_w(), - frame->get_w()); + BC_CModels::transfer(tiff_unit->temp->get_rows(), frame->get_rows(), + tiff_unit->temp->get_y(), tiff_unit->temp->get_u(), tiff_unit->temp->get_v(), + frame->get_y(), frame->get_u(), frame->get_v(), + 0, 0, frame->get_w(), frame->get_h(), + 0, 0, frame->get_w(), frame->get_h(), + frame->get_color_model(), color_model, + 0, frame->get_w(), frame->get_w()); for(int i = 0; i < asset->height; i++) { TIFFWriteScanline(stream, tiff_unit->temp->get_rows()[i], i, 0); @@ -553,12 +539,6 @@ FrameWriterUnit* FileTIFF::new_writer_unit(FrameWriter *writer) } - - - - - - FileTIFFUnit::FileTIFFUnit(FileTIFF *file, FrameWriter *writer) : FrameWriterUnit(writer) { @@ -586,8 +566,7 @@ TIFFConfigVideo::TIFFConfigVideo(BC_WindowBase *parent_window, Asset *asset) : BC_Window(_(PROGRAM_NAME ": Video Compression"), parent_window->get_abs_cursor_x(1), parent_window->get_abs_cursor_y(1), - 400, - 200) + xS(400), yS(200)) { this->parent_window = parent_window; this->asset = asset; @@ -600,16 +579,16 @@ TIFFConfigVideo::~TIFFConfigVideo() void TIFFConfigVideo::create_objects() { lock_window("TIFFConfigVideo::create_objects"); - int x = 10, y = 10; + int x = xS(10), y = yS(10); add_subwindow(new BC_Title(x, y, _("Colorspace:"))); TIFFColorspace *menu1; - add_subwindow(menu1 = new TIFFColorspace(this, x + 150, y, 200)); + add_subwindow(menu1 = new TIFFColorspace(this, x + xS(150), y, xS(200))); menu1->create_objects(); - y += 40; + y += yS(40); add_subwindow(new BC_Title(x, y, _("Compression:"))); TIFFCompression *menu2; - add_subwindow(menu2 = new TIFFCompression(this, x + 150, y, 200)); + add_subwindow(menu2 = new TIFFCompression(this, x + xS(150), y, xS(200))); menu2->create_objects(); add_subwindow(new BC_OKButton(this)); @@ -624,10 +603,6 @@ int TIFFConfigVideo::close_event() } - - - - TIFFColorspace::TIFFColorspace(TIFFConfigVideo *gui, int x, int y, int w) : BC_PopupMenu(x, y, diff --git a/cinelerra-5.1/cinelerra/formatpopup.C b/cinelerra-5.1/cinelerra/formatpopup.C index 31a8bd00..6252b0c2 100644 --- a/cinelerra-5.1/cinelerra/formatpopup.C +++ b/cinelerra-5.1/cinelerra/formatpopup.C @@ -28,7 +28,7 @@ FormatPopup::FormatPopup(int x, int y, int do_audio, int do_video, int use_brender) - : BC_ListBox(x, y, 200, 200, LISTBOX_TEXT, 0, 0, 0, 1, 0, 1) + : BC_ListBox(x, y, xS(200), yS(200), LISTBOX_TEXT, 0, 0, 0, 1, 0, 1) { this->do_audio = do_audio; this->do_video = do_video; @@ -104,7 +104,7 @@ int FormatPopup::handle_event() FFMPEGPopup::FFMPEGPopup(int x, int y) - : BC_ListBox(x, y, 100, 200, LISTBOX_TEXT, 0, 0, 0, 1, 0, 1) + : BC_ListBox(x, y, xS(100), yS(200), LISTBOX_TEXT, 0, 0, 0, 1, 0, 1) { set_tooltip(_("Set ffmpeg file type")); } diff --git a/cinelerra-5.1/cinelerra/formatpresets.C b/cinelerra-5.1/cinelerra/formatpresets.C index ab967823..bb27ba0c 100644 --- a/cinelerra-5.1/cinelerra/formatpresets.C +++ b/cinelerra-5.1/cinelerra/formatpresets.C @@ -66,7 +66,7 @@ void FormatPresets::create_objects() gui_base->add_subwindow(new BC_Title(x, y, _("Presets:"))); int x1 = x; - y += 20; + y += yS(20); gui_base->add_subwindow(text = new FormatPresetsText(mwindow, @@ -129,10 +129,7 @@ FormatPresetsText::FormatPresetsText(MWindow *mwindow, FormatPresets *gui, int x, int y) - : BC_TextBox(x, - y, - 200, - 1, + : BC_TextBox(x, y, xS(200), 1, gui->get_preset_text(gui->get_edl())) { this->gui = gui; @@ -157,7 +154,7 @@ FormatPresetsPulldown::FormatPresetsPulldown(MWindow *mwindow, FormatPresets *gui, int x, int y) - : BC_ListBox(x, y, 200, 250, + : BC_ListBox(x, y, xS(200), yS(250), LISTBOX_TEXT, // Display text list or icons (ArrayList*)&gui->preset_items, // Each column has an ArrayList of BC_ListBoxItems. 0, // Titles for columns. Set to 0 for no titles diff --git a/cinelerra-5.1/cinelerra/formattools.C b/cinelerra-5.1/cinelerra/formattools.C index dc189a02..9199fff0 100644 --- a/cinelerra-5.1/cinelerra/formattools.C +++ b/cinelerra-5.1/cinelerra/formattools.C @@ -112,6 +112,7 @@ void FormatTools::create_objects( int brender, int horizontal_layout) { + int ys10 = yS(10); int x = init_x; int y = init_y; int ylev = init_y; @@ -136,7 +137,7 @@ void FormatTools::create_objects( window->add_subwindow(path_textbox = new FormatPathText(px, y, this)); px += path_textbox->get_w() + 5; path_recent = new BC_RecentList("PATH", mwindow->defaults, - path_textbox, 10, px, y, 300, 100); + path_textbox, 10, px, y, xS(300), yS(100)); window->add_subwindow(path_recent); path_recent->load_items(File::formattostr(asset->format)); px += path_recent->get_w(); @@ -145,32 +146,32 @@ void FormatTools::create_objects( _("Output to file"), _("Select a file to write to:"), 0)); // Set w for user. - w = MAX(w, 305); - y += path_textbox->get_h() + 10; + w = MAX(w, xS(305)); + y += path_textbox->get_h() + ys10; } else { -// w = x + 305; - w = 305; +// w = x + xS(305); + w = xS(305); } x = init_x; window->add_subwindow(format_title = new BC_Title(x, y, _("File Format:"))); x += format_title->get_w() + margin; - window->add_subwindow(format_text = new BC_TextBox(x, y, 160, 1, + window->add_subwindow(format_text = new BC_TextBox(x, y, xS(160), 1, File::formattostr(asset->format))); x += format_text->get_w() + margin; //printf("FormatTools::create_objects %d %p\n", __LINE__, window); window->add_subwindow(format_button = new FormatFormat(x, y, this)); format_button->create_objects(); x += format_button->get_w() + 5; - window->add_subwindow(ffmpeg_type = new FFMpegType(x, y, 70, 1, asset->fformat)); + window->add_subwindow(ffmpeg_type = new FFMpegType(x, y, xS(70), 1, asset->fformat)); FFMPEG::set_asset_format(asset, mwindow->edl, asset->fformat); x += ffmpeg_type->get_w(); window->add_subwindow(format_ffmpeg = new FormatFFMPEG(x, y, this)); format_ffmpeg->create_objects(); x = init_x; - y += format_button->get_h() + 10; + y += format_button->get_h() + ys10; if( do_audio ) { window->add_subwindow(audio_title = new BC_Title(x, y, _("Audio:"), LARGEFONT, BC_WindowBase::get_resources()->audiovideo_color)); @@ -182,7 +183,7 @@ void FormatTools::create_objects( } x = init_x; ylev = y; - y += aparams_button->get_h() + 10; + y += aparams_button->get_h() + ys10; //printf("FormatTools::create_objects 6\n"); aparams_thread = new FormatAThread(this); @@ -191,7 +192,7 @@ void FormatTools::create_objects( //printf("FormatTools::create_objects 7\n"); if( do_video ) { if( horizontal_layout && do_audio ) { - x += 370; + x += xS(370); y = ylev; } @@ -214,7 +215,7 @@ void FormatTools::create_objects( } //printf("FormatTools::create_objects 10\n"); - y += 10; + y += ys10; vparams_thread = new FormatVThread(this); } @@ -224,7 +225,7 @@ void FormatTools::create_objects( if( file_per_label ) { labeled_files = new FormatFilePerLabel(this, x, y, file_per_label); window->add_subwindow(labeled_files); - y += labeled_files->get_h() + 10; + y += labeled_files->get_h() + ys10; } //printf("FormatTools::create_objects 12\n"); @@ -442,6 +443,8 @@ void FormatTools::set_w(int w) void FormatTools::reposition_window(int &init_x, int &init_y) { + int xs10 = xS(10), xs80 = xS(80); + int ys10 = yS(10); int x = init_x; int y = init_y; @@ -449,43 +452,43 @@ void FormatTools::reposition_window(int &init_x, int &init_y) { int px = x; path_textbox->reposition_window(px, y); - px += path_textbox->get_w() + 5; + px += path_textbox->get_w() + xS(5); path_recent->reposition_window(px, y); - px += path_recent->get_w() + 8; + px += path_recent->get_w() + xS(8); path_button->reposition_window(px, y); - y += path_textbox->get_h() + 10; + y += path_textbox->get_h() + ys10; } format_title->reposition_window(x, y); - x += 90; + x += xS(90); format_text->reposition_window(x, y); x += format_text->get_w(); format_button->reposition_window(x, y); x = init_x; - y += format_button->get_h() + 10; + y += format_button->get_h() + ys10; if(do_audio) { audio_title->reposition_window(x, y); - x += 80; + x += xs80; aparams_button->reposition_window(x, y); - x += aparams_button->get_w() + 10; + x += aparams_button->get_w() + xs10; if(prompt_audio) audio_switch->reposition_window(x, y); x = init_x; - y += aparams_button->get_h() + 10; + y += aparams_button->get_h() + ys10; } if(do_video) { video_title->reposition_window(x, y); - x += 80; + x += xs80; if(prompt_video_compression) { vparams_button->reposition_window(x, y); - x += vparams_button->get_w() + 10; + x += vparams_button->get_w() + xs10; } if(prompt_video) @@ -498,13 +501,13 @@ void FormatTools::reposition_window(int &init_x, int &init_y) y += vparams_button->get_h(); } - y += 10; + y += ys10; x = init_x; } if( file_per_label ) { labeled_files->reposition_window(x, y); - y += labeled_files->get_h() + 10; + y += labeled_files->get_h() + ys10; } init_y = y; @@ -658,7 +661,7 @@ void FormatVThread::run() FormatPathText::FormatPathText(int x, int y, FormatTools *format) : BC_TextBox(x, y, format->w - x - - 2*format->mwindow->theme->get_image_set("wrench")[0]->get_w() - 20, 1, + 2*format->mwindow->theme->get_image_set("wrench")[0]->get_w() - xS(20), 1, format->asset->path) { this->format = format; diff --git a/cinelerra-5.1/cinelerra/formatwindow.C b/cinelerra-5.1/cinelerra/formatwindow.C index a2c1ba36..67f7416d 100644 --- a/cinelerra-5.1/cinelerra/formatwindow.C +++ b/cinelerra-5.1/cinelerra/formatwindow.C @@ -26,9 +26,8 @@ FormatAWindow::FormatAWindow(Asset *asset, int *dither) - : BC_Window(_(PROGRAM_NAME ": File format"), 410, - (asset->format == FILE_WAV) ? 115 : 185, - 0, 0) + : BC_Window(_(PROGRAM_NAME ": File format"), xS(410), + yS((asset->format == FILE_WAV) ? 115 : 185), 0, 0) { this->asset = asset; this->dither = dither; } FormatAWindow::~FormatAWindow() @@ -40,42 +39,42 @@ void FormatAWindow::create_objects() lock_window("FormatAWindow::create_objects"); int x; int init_x; - int y = 10; + int y = yS(10); File file; - x = init_x = 10; + x = init_x = xS(10); add_subwindow(new BC_Title(x, y, _("Set parameters for this audio format:"))); - y += 30; + y += yS(30); add_subwindow(new BC_Title(x, y, _("Bits:"))); - x += 45; + x += yS(45); add_subwindow(new FormatBits(x, y, asset)); - x += 100; + x += xS(100); add_subwindow(new FormatDither(x, y, this->dither)); if(asset->format == FILE_PCM) { - x += 90; + x += xS(90); add_subwindow(new FormatSigned(x, y, asset)); } - y += 40; + y += yS(40); x = init_x; if(asset->format == FILE_PCM) { add_subwindow(new BC_Title(x, y, _("Byte order:"))); - y += 25; + y += yS(25); add_subwindow(new BC_Title(x, y, _("HiLo:"), SMALLFONT)); - add_subwindow(hilo_button = new FormatHILO(x + 30, y, asset)); - x += 50; + add_subwindow(hilo_button = new FormatHILO(x + xS(30), y, asset)); + x += xS(50); add_subwindow(new BC_Title(x, y, _("LoHi:"), SMALLFONT)); - add_subwindow(lohi_button = new FormatLOHI(x + 30, y, hilo_button, asset)); + add_subwindow(lohi_button = new FormatLOHI(x + xS(30), y, hilo_button, asset)); hilo_button->lohi = lohi_button; - y += 30; + y += yS(30); } x = init_x; - add_subwindow(new BC_OKButton(x + 170, y)); + add_subwindow(new BC_OKButton(x + xS(170), y)); unlock_window(); } @@ -88,8 +87,11 @@ int FormatAWindow::close_event() FormatVWindow::FormatVWindow(Asset *asset, int recording) - : BC_Window(_(PROGRAM_NAME ": File format"), 410, 115, 0, 0) -{ this->asset = asset; this->recording = recording; } + : BC_Window(_(PROGRAM_NAME ": File format"), xS(410), yS(115), 0, 0) +{ + this->asset = asset; + this->recording = recording; +} FormatVWindow::~FormatVWindow() { @@ -98,28 +100,28 @@ FormatVWindow::~FormatVWindow() void FormatVWindow::create_objects() { lock_window("FormatVWindow::create_objects"); - int x, y = 10; + int x, y = yS(10); int init_x; - init_x = x = 10; + init_x = x = xS(10); if(asset->format == FILE_JPEG_LIST) { add_subwindow(new BC_Title(x, y, _("Set parameters for this video format:"))); - y += 30; + y += yS(30); add_subwindow(new BC_Title(x, y, _("Quality:"))); - x += 70; + x += xS(70); add_subwindow(new FormatQuality(x, y, asset, asset->quality)); - y += 40; + y += yS(40); x = init_x; } else { add_subwindow(new BC_Title(x, y, _("Video is not supported in this format."))); - y += 40; + y += yS(40); } - add_subwindow(new BC_OKButton(x + 170, y)); + add_subwindow(new BC_OKButton(x + xS(170), y)); unlock_window(); } @@ -130,7 +132,7 @@ int FormatVWindow::close_event() FormatQuality::FormatQuality(int x, int y, Asset *asset, int default_) - : BC_ISlider(x, y, 0, 100, 100, 0, 100, default_, 1) + : BC_ISlider(x, y, 0, xS(100), xS(100), 0, 100, default_, 1) { this->asset = asset; } diff --git a/cinelerra-5.1/cinelerra/gwindowgui.C b/cinelerra-5.1/cinelerra/gwindowgui.C index 3fef296e..3bcb853e 100644 --- a/cinelerra-5.1/cinelerra/gwindowgui.C +++ b/cinelerra-5.1/cinelerra/gwindowgui.C @@ -170,14 +170,15 @@ void GWindowGUI::calculate_extents(BC_WindowBase *gui, int *w, int *h) { int temp1, temp2, temp3, temp4, temp5, temp6, temp7; int current_w, current_h; - *w = 10; - *h = 10; + int ys5 = yS(5), ys10 = yS(10); + *w = xS(10); + *h = ys10; for( int i=0; i<(int)(sizeof(toggle_order)/sizeof(toggle_order[0])); ++i ) { toggleinfo *tp = &toggle_order[i]; int ref = tp->ref; if( ref < 0 ) { - *h += get_resources()->bar_data->get_h() + 5; + *h += get_resources()->bar_data->get_h() + ys5; continue; } BC_Toggle::calculate_extents(gui, @@ -187,11 +188,11 @@ void GWindowGUI::calculate_extents(BC_WindowBase *gui, int *w, int *h) toggle_text(tp), MEDIUMFONT); current_w += current_h; *w = MAX(current_w, *w); - *h += current_h + 5; + *h += current_h + ys5; } - *h += 10; - *w += 20; + *h += ys10; + *w += xS(20); } GWindowColorButton::GWindowColorButton(GWindowToggle *auto_toggle, @@ -237,17 +238,19 @@ void GWindowColorButton::handle_done_event(int result) void GWindowGUI::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10); + int ys5 = yS(5), ys10 = yS(10); + int x = xs10, y = ys10; lock_window("GWindowGUI::create_objects"); for( int i=0; i<(int)(sizeof(toggle_order)/sizeof(toggle_order[0])); ++i ) { toggleinfo *tp = &toggle_order[i]; int ref = tp->ref; if( ref < 0 ) { - BC_Bar *bar = new BC_Bar(x,y,get_w()-x-10); + BC_Bar *bar = new BC_Bar(x,y,get_w()-x-xs10); add_tool(bar); toggles[i] = 0; - y += bar->get_h() + 5; + y += bar->get_h() + ys5; continue; } const char *label = toggle_text(tp); @@ -264,14 +267,14 @@ void GWindowGUI::create_objects() case AUTOMATION_MASK: vframe = mwindow->theme->maskkeyframe_data; break; } if( !vframe ) { - int wh = toggle->get_h() - 4; + int wh = toggle->get_h() - yS(4); GWindowColorButton *color_button = - new GWindowColorButton(toggle, get_w()-wh-10, y+2, wh, color); + new GWindowColorButton(toggle, get_w()-wh-ys10, y+yS(2), wh, color); add_tool(color_button); color_button->create_objects(); } else - draw_vframe(vframe, get_w()-vframe->get_w()-10, y); + draw_vframe(vframe, get_w()-vframe->get_w()-xs10, y); } else { const char *accel = 0; @@ -286,16 +289,16 @@ void GWindowGUI::create_objects() break; case NON_AUTOMATION_HARD_EDGES: VFrame *vframe = mwindow->theme->hardedge_data; - draw_vframe(vframe, get_w()-vframe->get_w()-10, y); + draw_vframe(vframe, get_w()-vframe->get_w()-xs10, y); hard_edges = toggle; break; } if( accel ) { - int x1 = get_w() - BC_Title::calculate_w(this, accel) - 10; + int x1 = get_w() - BC_Title::calculate_w(this, accel) - xs10; add_subwindow(new BC_Title(x1, y, accel)); } } - y += toggles[i]->get_h() + 5; + y += toggles[i]->get_h() + ys5; } update_toggles(0); unlock_window(); diff --git a/cinelerra-5.1/cinelerra/interfaceprefs.C b/cinelerra-5.1/cinelerra/interfaceprefs.C index c7dcc8a0..9a861e68 100644 --- a/cinelerra-5.1/cinelerra/interfaceprefs.C +++ b/cinelerra-5.1/cinelerra/interfaceprefs.C @@ -61,6 +61,8 @@ InterfacePrefs::~InterfacePrefs() void InterfacePrefs::create_objects() { + int xs4 = xS(4), xs5 = xS(5), xs10 = xS(10), xs30 = xS(30); + int ys5 = yS(5), ys10 = yS(10), ys20 = yS(20), ys30 = yS(30), ys35 = yS(35); BC_Resources *resources = BC_WindowBase::get_resources(); int margin = mwindow->theme->widget_border; char string[BCTEXTLEN]; @@ -70,143 +72,143 @@ void InterfacePrefs::create_objects() add_subwindow(new BC_Title(x, y, _("Editing:"), LARGEFONT, resources->text_default)); - y += 35; + y += ys35; int x2 = get_w()/2, y2 = y; x = x2; BC_Title *title; add_subwindow(title = new BC_Title(x, y, _("Keyframe reticle:"))); - y += title->get_h() + 5; + y += title->get_h() + ys5; keyframe_reticle = new KeyframeReticle(pwindow, this, x, y, &pwindow->thread->preferences->keyframe_reticle); add_subwindow(keyframe_reticle); keyframe_reticle->create_objects(); - y += 30; + y += ys30; add_subwindow(title = new BC_Title(x, y, _("Snapshot path:"))); - y += title->get_h() + 5; - add_subwindow(snapshot_path = new SnapshotPathText(pwindow, this, x, y, get_w()-x-30)); + y += title->get_h() + ys5; + add_subwindow(snapshot_path = new SnapshotPathText(pwindow, this, x, y, get_w()-x-xs30)); x = x0; y = y2; add_subwindow(title = new BC_Title(x, y, _("Clicking on edit boundaries does what:"))); - y += title->get_h() + 10; + y += title->get_h() + ys10; add_subwindow(new BC_Title(x, y, _("Button 1:"))); - int x1 = x + 100; + int x1 = x + xS(100); ViewBehaviourText *text; - add_subwindow(text = new ViewBehaviourText(x1, y - 5, + add_subwindow(text = new ViewBehaviourText(x1, y - ys5, behavior_to_text(pwindow->thread->edl->session->edit_handle_mode[0]), pwindow, &(pwindow->thread->edl->session->edit_handle_mode[0]))); text->create_objects(); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Button 2:"))); add_subwindow(text = new ViewBehaviourText(x1, - y - 5, + y - ys5, behavior_to_text(pwindow->thread->edl->session->edit_handle_mode[1]), pwindow, &(pwindow->thread->edl->session->edit_handle_mode[1]))); text->create_objects(); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Button 3:"))); - add_subwindow(text = new ViewBehaviourText(x1, y - 5, + add_subwindow(text = new ViewBehaviourText(x1, y - ys5, behavior_to_text(pwindow->thread->edl->session->edit_handle_mode[2]), pwindow, &(pwindow->thread->edl->session->edit_handle_mode[2]))); text->create_objects(); - y += text->get_h() + 30; + y += text->get_h() + ys30; x = x0; - add_subwindow(new BC_Bar(5, y, get_w() - 10)); - y += 5; + add_subwindow(new BC_Bar(xs5, y, get_w() - xs10)); + y += ys5; add_subwindow(new BC_Title(x, y, _("Operation:"), LARGEFONT, resources->text_default)); int y1 = y; - y += 15; + y += yS(15); AndroidRemote *android_remote = new AndroidRemote(pwindow, x2, y); add_subwindow(android_remote); - y += android_remote->get_h() + 10; + y += android_remote->get_h() + ys10; add_subwindow(title = new BC_Title(x2, y, _("Port:"))); int x3 = x2 + title->get_w() + margin; AndroidPort *android_port = new AndroidPort(pwindow, x3, y); add_subwindow(android_port); - y += title->get_h() + 10; + y += title->get_h() + ys10; add_subwindow(title = new BC_Title(x2, y, _("PIN:"))); AndroidPIN *android_pin = new AndroidPIN(pwindow, x3, y); add_subwindow(android_pin); - y += title->get_h() + 20; + y += title->get_h() + ys20; ShBtnPrefs *shbtn_prefs = new ShBtnPrefs(pwindow, this, x2, y); add_subwindow(shbtn_prefs); - y += shbtn_prefs->get_h() + 20; + y += shbtn_prefs->get_h() + ys20; add_subwindow(reload_plugins = new PrefsReloadPlugins(pwindow, this, x2, y)); - y += reload_plugins->get_h() + 10; + y += reload_plugins->get_h() + ys10; add_subwindow(title = new BC_Title(x2, y, _("Default LV2_PATH:"))); - y += title->get_h() + 10; - PrefsLV2PathText *lv2_path_text = new PrefsLV2PathText(pwindow, this, x2, y, get_w()-x2-30); + y += title->get_h() + ys10; + PrefsLV2PathText *lv2_path_text = new PrefsLV2PathText(pwindow, this, x2, y, get_w()-x2-xs30); add_subwindow(lv2_path_text); - y += 30; + y += xs30; y2 = y; - x = x0; y = y1 + 35; + x = x0; y = y1 + ys35; add_subwindow(file_probes = new PrefsFileProbes(pwindow, this, x, y)); - y += 30; + y += ys30; PrefsTrapSigSEGV *trap_segv = new PrefsTrapSigSEGV(this, x, y); add_subwindow(trap_segv); - x1 = x + trap_segv->get_w() + 10; + x1 = x + trap_segv->get_w() + xs10; add_subwindow(new BC_Title(x1, y, _("(must be root)"), MEDIUMFONT, RED)); - y += 30; + y += ys30; PrefsTrapSigINTR *trap_intr = new PrefsTrapSigINTR(this, x, y); add_subwindow(trap_intr); add_subwindow(new BC_Title(x1, y, _("(must be root)"), MEDIUMFONT, RED)); - y += 30; + y += ys30; yuv420p_dvdlace = new PrefsYUV420P_DVDlace(pwindow, this, x, y); add_subwindow(yuv420p_dvdlace); - y += 30; + y += ys30; - add_subwindow(title = new BC_Title(x1=x, y + 5, _("Min DB for meter:"))); - x1 += title->get_w() + 4; + add_subwindow(title = new BC_Title(x1=x, y + ys5, _("Min DB for meter:"))); + x1 += title->get_w() + xs4; sprintf(string, "%d", pwindow->thread->edl->session->min_meter_db); add_subwindow(min_db = new MeterMinDB(pwindow, string, x1, y)); - x1 += min_db->get_w() + 4; - add_subwindow(title = new BC_Title(x1, y + 5, _("Max:"))); - x1 += title->get_w() + 4; + x1 += min_db->get_w() + xs4; + add_subwindow(title = new BC_Title(x1, y + ys5, _("Max:"))); + x1 += title->get_w() + xs4; sprintf(string, "%d", pwindow->thread->edl->session->max_meter_db); add_subwindow(max_db = new MeterMaxDB(pwindow, string, x1, y)); - y += 30; + y += ys30; StillImageUseDuration *use_stduration = new StillImageUseDuration(pwindow, pwindow->thread->edl->session->si_useduration, x, y); add_subwindow(use_stduration); - x1 = x + use_stduration->get_w() + 10; + x1 = x + use_stduration->get_w() + xs10; StillImageDuration *stduration = new StillImageDuration(pwindow, x1, y); add_subwindow(stduration); - x1 += stduration->get_w() + 10; + x1 += stduration->get_w() + xs10; add_subwindow(new BC_Title(x1, y, _("Seconds"))); - y += 30; + y += ys30; PrefsAutostartLV2UI *autostart_lv2ui = new PrefsAutostartLV2UI(x, y,pwindow); add_subwindow(autostart_lv2ui); - y += autostart_lv2ui->get_h() + 10; + y += autostart_lv2ui->get_h() + ys10; if( y2 > y ) y = y2; x = x0; - add_subwindow(new BC_Bar(5, y, get_w() - 10)); - y += 5; + add_subwindow(new BC_Bar(xs5, y, get_w() - xs10)); + y += ys5; add_subwindow(new BC_Title(x, y, _("Index files:"), LARGEFONT, resources->text_default)); - y += 30; + y += ys30; - add_subwindow(new BC_Title(x, y + 5, + add_subwindow(new BC_Title(x, y + ys5, _("Index files go here:"), MEDIUMFONT, resources->text_default)); - x1 = x + 230; + x1 = x + xS(230); add_subwindow(ipathtext = new IndexPathText(x1, y, pwindow, pwindow->thread->preferences->index_directory)); x1 += ipathtext->get_w(); @@ -214,23 +216,23 @@ void InterfacePrefs::create_objects() pwindow->thread->preferences->index_directory, _("Index Path"), _("Select the directory for index files"), 1)); - y += 30; - add_subwindow(new BC_Title(x, y + 5, _("Size of index file in KB:"), + y += ys30; + add_subwindow(new BC_Title(x, y + ys5, _("Size of index file in KB:"), MEDIUMFONT, resources->text_default)); sprintf(string, "%jd", pwindow->thread->preferences->index_size/1024); - add_subwindow(isize = new IndexSize(x + 230, y, pwindow, string)); - add_subwindow(new ScanCommercials(pwindow, 400,y)); + add_subwindow(isize = new IndexSize(x + xS(230), y, pwindow, string)); + add_subwindow(new ScanCommercials(pwindow, xS(400),y)); - y += 30; - add_subwindow(new BC_Title(x, y + 5, _("Number of index files to keep:"), + y += ys30; + add_subwindow(new BC_Title(x, y + ys5, _("Number of index files to keep:"), MEDIUMFONT, resources->text_default)); sprintf(string, "%ld", (long)pwindow->thread->preferences->index_count); - add_subwindow(icount = new IndexCount(x + 230, y, pwindow, string)); - add_subwindow(del_indexes = new DeleteAllIndexes(mwindow, pwindow, 400, y, + add_subwindow(icount = new IndexCount(x + xS(230), y, pwindow, string)); + add_subwindow(del_indexes = new DeleteAllIndexes(mwindow, pwindow, xS(400), y, _("Delete existing indexes"), "[*.idx][*.toc][*.mkr]")); - y += 30; + y += ys30; add_subwindow(ffmpeg_marker_files = new IndexFFMPEGMarkerFiles(this, x, y)); - add_subwindow(del_clipngs = new DeleteAllIndexes(mwindow, pwindow, 400, y, + add_subwindow(del_clipngs = new DeleteAllIndexes(mwindow, pwindow, xS(400), y, _("Delete clip thumbnails"), "clip_*.png")); } @@ -248,7 +250,7 @@ const char* InterfacePrefs::behavior_to_text(int mode) } IndexPathText::IndexPathText(int x, int y, PreferencesWindow *pwindow, char *text) - : BC_TextBox(x, y, 240, 1, text) + : BC_TextBox(x, y, xS(240), 1, text) { this->pwindow = pwindow; } @@ -265,7 +267,7 @@ int IndexPathText::handle_event() IndexSize::IndexSize(int x, int y, PreferencesWindow *pwindow, char *text) - : BC_TextBox(x, y, 100, 1, text) + : BC_TextBox(x, y, xS(100), 1, text) { this->pwindow = pwindow; } @@ -321,7 +323,7 @@ int IndexFFMPEGMarkerFiles::handle_event() ViewBehaviourText::ViewBehaviourText(int x, int y, const char *text, PreferencesWindow *pwindow, int *output) - : BC_PopupMenu(x, y, 250, text) + : BC_PopupMenu(x, y, xS(250), text) { this->output = output; } @@ -364,7 +366,7 @@ int ViewBehaviourItem::handle_event() MeterMinDB::MeterMinDB(PreferencesWindow *pwindow, char *text, int x, int y) - : BC_TextBox(x, y, 50, 1, text) + : BC_TextBox(x, y, xS(50), 1, text) { this->pwindow = pwindow; } @@ -378,7 +380,7 @@ int MeterMinDB::handle_event() MeterMaxDB::MeterMaxDB(PreferencesWindow *pwindow, char *text, int x, int y) - : BC_TextBox(x, y, 50, 1, text) + : BC_TextBox(x, y, xS(50), 1, text) { this->pwindow = pwindow; } @@ -420,7 +422,7 @@ int AndroidRemote::handle_event() } AndroidPIN::AndroidPIN(PreferencesWindow *pwindow, int x, int y) - : BC_TextBox(x, y, 240, 1, pwindow->thread->preferences->android_pin) + : BC_TextBox(x, y, xS(240), 1, pwindow->thread->preferences->android_pin) { this->pwindow = pwindow; } @@ -435,7 +437,7 @@ int AndroidPIN::handle_event() AndroidPort::AndroidPort(PreferencesWindow *pwindow, int x, int y) - : BC_TextBox(x, y, 72, 1, pwindow->thread->preferences->android_port) + : BC_TextBox(x, y, xS(72), 1, pwindow->thread->preferences->android_port) { this->pwindow = pwindow; } @@ -486,7 +488,7 @@ int StillImageUseDuration::handle_event() } StillImageDuration::StillImageDuration(PreferencesWindow *pwindow, int x, int y) - : BC_TextBox(x, y, 70, 1, pwindow->thread->edl->session->si_duration) + : BC_TextBox(x, y, xS(70), 1, pwindow->thread->edl->session->si_duration) { this->pwindow = pwindow; } @@ -519,7 +521,7 @@ int HairlineItem::handle_event() KeyframeReticle::KeyframeReticle(PreferencesWindow *pwindow, InterfacePrefs *iface_prefs, int x, int y, int *output) - : BC_PopupMenu(x, y, 220, hairline_to_string(*output)) + : BC_PopupMenu(x, y, xS(220), hairline_to_string(*output)) { this->pwindow = pwindow; this->iface_prefs = iface_prefs; diff --git a/cinelerra-5.1/cinelerra/keyframegui.C b/cinelerra-5.1/cinelerra/keyframegui.C index 03c8804b..744106b9 100644 --- a/cinelerra-5.1/cinelerra/keyframegui.C +++ b/cinelerra-5.1/cinelerra/keyframegui.C @@ -457,7 +457,7 @@ KeyFrameWindow::KeyFrameWindow(MWindow *mwindow, KeyFrameThread *thread, : BC_Window(title_string, x, y, mwindow->session->keyframedialog_w, mwindow->session->keyframedialog_h, - 320, 240, 1, 0, 1) + xS(320), yS(240), 1, 0, 1) { this->mwindow = mwindow; this->thread = thread; diff --git a/cinelerra-5.1/cinelerra/labeledit.C b/cinelerra-5.1/cinelerra/labeledit.C index 22681918..9a728a0e 100644 --- a/cinelerra-5.1/cinelerra/labeledit.C +++ b/cinelerra-5.1/cinelerra/labeledit.C @@ -74,10 +74,13 @@ BC_Window *LabelEdit::new_gui() return label_edit_window; } +#define LEW_W xS(400) +#define LEW_H yS(350) + LabelEditWindow::LabelEditWindow(MWindow *mwindow, LabelEdit *thread) : BC_Window(_(PROGRAM_NAME ": Label Info"), - thread->x - 400/2, thread->y - 350/2, - 400, 350, 400, 430, 0, 0, 1) + thread->x - LEW_W/2, thread->y - LEW_H/2, + LEW_W, LEW_H, xS(400), yS(430), 0, 0, 1) { this->mwindow = mwindow; this->thread = thread; @@ -92,14 +95,14 @@ void LabelEditWindow::create_objects() lock_window("LabelEditWindow::create_objects"); this->label = thread->label; - int x = 10, y = 10; + int x = xS(10), y = yS(10); int x1 = x; BC_Title *title; add_subwindow(title = new BC_Title(x1, y, _("Label Text:"))); y += title->get_h() + 5; add_subwindow(textbox = new LabelEditComments(this, x1, y, get_w() - x1 * 2, - BC_TextBox::pixels_to_rows(this, MEDIUMFONT, get_h() - 10 - 40 - y))); + BC_TextBox::pixels_to_rows(this, MEDIUMFONT, get_h() - y - yS(10 + 40)))); add_subwindow(new BC_OKButton(this)); add_subwindow(new BC_CancelButton(this)); diff --git a/cinelerra-5.1/cinelerra/levelwindowgui.C b/cinelerra-5.1/cinelerra/levelwindowgui.C index 22a0c173..b35409be 100644 --- a/cinelerra-5.1/cinelerra/levelwindowgui.C +++ b/cinelerra-5.1/cinelerra/levelwindowgui.C @@ -35,15 +35,9 @@ LevelWindowGUI::LevelWindowGUI(MWindow *mwindow, LevelWindow *thread) : BC_Window(_(PROGRAM_NAME ": Levels"), - mwindow->session->lwindow_x, - mwindow->session->lwindow_y, - mwindow->session->lwindow_w, - mwindow->session->lwindow_h, - 10, - 10, - 1, - 0, - 1) + mwindow->session->lwindow_x, mwindow->session->lwindow_y, + mwindow->session->lwindow_w, mwindow->session->lwindow_h, + xS(10), yS(10), 1, 0, 1) { this->thread = thread; this->mwindow = mwindow; diff --git a/cinelerra-5.1/cinelerra/maincursor.C b/cinelerra-5.1/cinelerra/maincursor.C index 4c3c5590..daf4eec1 100644 --- a/cinelerra-5.1/cinelerra/maincursor.C +++ b/cinelerra-5.1/cinelerra/maincursor.C @@ -126,9 +126,10 @@ void MainCursor::draw(int do_plugintoggles) mwindow->edl->session->sample_rate / zoom_sample - view_start)); - if(pixel1 < -10) pixel1 = -10; - if(pixel2 > pane->canvas->get_w() + 10) - pixel2 = pane->canvas->get_w() + 10; + int xs10 = xS(10); + if(pixel1 < -xs10) pixel1 = -xs10; + if(pixel2 > pane->canvas->get_w() + xs10) + pixel2 = pane->canvas->get_w() + xs10; if(pixel2 < pixel1) pixel2 = pixel1; //printf("MainCursor::draw 2\n"); } diff --git a/cinelerra-5.1/cinelerra/mainerror.C b/cinelerra-5.1/cinelerra/mainerror.C index c82d23a3..e206a22d 100644 --- a/cinelerra-5.1/cinelerra/mainerror.C +++ b/cinelerra-5.1/cinelerra/mainerror.C @@ -41,18 +41,8 @@ MainError* MainError::main_error = 0; MainErrorGUI::MainErrorGUI(MWindow *mwindow, MainError *thread, int x, int y) : BC_Window(_(PROGRAM_NAME ": Messages"), - x, - y, - mwindow->session->ewindow_w, - mwindow->session->ewindow_h, - 50, - 50, - 1, - 0, - 1, - -1, - "", - 1) + x, y, mwindow->session->ewindow_w, mwindow->session->ewindow_h, + xS(50), yS(50), 1, 0, 1, -1, "", 1) { this->mwindow = mwindow; this->thread = thread; @@ -67,11 +57,11 @@ void MainErrorGUI::create_objects() lock_window("MainErrorGUI::create_objects"); BC_Button *button; add_subwindow(button = new BC_OKButton(this)); - int x = 10, y = 10; + int x = xS(10), y = yS(10); add_subwindow(title = new BC_Title(x, y, _("Message log:"))); - y += title->get_h() + 5; + y += title->get_h() + yS(5); add_subwindow(list = new BC_ListBox(x, y, - get_w() - 20, button->get_y() - y - 5, + get_w() - xS(20), button->get_y() - y - yS(5), LISTBOX_TEXT, // Display text list or icons &thread->errors, // Each column has an ArrayList of BC_ListBoxItems. 0, // Titles for columns. Set to 0 for no titles @@ -105,10 +95,6 @@ int MainErrorGUI::resize_event(int w, int h) } - - - - MainError::MainError(MWindow *mwindow) : BC_DialogThread() { @@ -197,9 +183,3 @@ void MainError::show_error(const char *string) printf("%s%s", string, len>0 && string[len-1] == '\n' ? "" : "\n"); } - - - - - - diff --git a/cinelerra-5.1/cinelerra/mainmenu.C b/cinelerra-5.1/cinelerra/mainmenu.C index f33a5c74..7b9b3707 100644 --- a/cinelerra-5.1/cinelerra/mainmenu.C +++ b/cinelerra-5.1/cinelerra/mainmenu.C @@ -1857,7 +1857,7 @@ int LoadLayoutNameText::handle_event() } LoadLayoutConfirm::LoadLayoutConfirm(LoadLayoutDialog *layout_dialog, int x, int y) - : BC_Window(_(PROGRAM_NAME ": Layout"), x, y, 300,140, 300,140, 0) + : BC_Window(_(PROGRAM_NAME ": Layout"), x, y, xS(300),yS(140), xS(300),yS(140), 0) { this->layout_dialog = layout_dialog; } @@ -1868,20 +1868,22 @@ LoadLayoutConfirm::~LoadLayoutConfirm() void LoadLayoutConfirm::create_objects() { + int xs10 = xS(10), xs20 = xS(20); + int ys10 = yS(10); lock_window("LoadLayoutConfirm::create_objects"); - int x = 10, y = 10, pad = 10; + int x = xs10, y = ys10; BC_SubMenu *layout_submenu = layout_dialog->load_layout->get_submenu(); LoadLayoutItem *item = (LoadLayoutItem *) layout_submenu->get_item(layout_dialog->idx); BC_Title *title; add_subwindow(title = new BC_Title(x, y, _("Layout Name:"))); - int x1 = x + title->get_w() + 10; + int x1 = x + title->get_w() + xs10; add_subwindow(title = new BC_Title(x1, y, item->get_text())); - y += title->get_h() + pad; + y += title->get_h() + ys10; add_subwindow(name_text = new LoadLayoutNameText(this, - x, y, get_w()-x-20, item->layout_text)); + x, y, get_w()-x-xs20, item->layout_text)); y += name_text->get_h(); - x1 = x + 80; + x1 = x + xS(80); char legend[BCTEXTLEN]; sprintf(legend, _("a-z,A-Z,0-9_ only, %dch max"), LAYOUT_NAME_LEN); add_subwindow(title = new BC_Title(x1, y, legend)); diff --git a/cinelerra-5.1/cinelerra/mainsession.C b/cinelerra-5.1/cinelerra/mainsession.C index e40f343e..16a20fe8 100644 --- a/cinelerra-5.1/cinelerra/mainsession.C +++ b/cinelerra-5.1/cinelerra/mainsession.C @@ -275,10 +275,10 @@ void MainSession::default_window_positions(int window_config) BC_DisplayInfo b_display_info(b_x11_host); b_root_w = b_display_info.get_root_w(); b_root_h = b_display_info.get_root_h(); - cwindow_x = 50; - cwindow_y = 50; - cwindow_w = b_root_w-100; - cwindow_h = b_root_h-100; + cwindow_x = xS(50); + cwindow_y = yS(50); + cwindow_w = b_root_w-xS(100); + cwindow_h = b_root_h-yS(100); } ctool_x = cwindow_x + cwindow_w / 2; @@ -294,11 +294,11 @@ void MainSession::default_window_positions(int window_config) awindow_w = root_x + root_w - awindow_x - border_left - border_right; awindow_h = mwindow_h; - bwindow_w = 600; - bwindow_h = 360; + bwindow_w = xS(600); + bwindow_h = yS(360); - ewindow_w = 640; - ewindow_h = 240; + ewindow_w = xS(640); + ewindow_h = yS(240); channels_x = 0; channels_y = 0; @@ -306,12 +306,12 @@ void MainSession::default_window_positions(int window_config) picture_y = 0; scope_x = 0; scope_y = 0; - scope_w = 640; - scope_h = 320; + scope_w = xS(640); + scope_h = yS(320); histogram_x = 0; histogram_y = 0; - histogram_w = 320; - histogram_h = 480; + histogram_w = xS(320); + histogram_h = yS(480); record_scope = 0; use_hist = 1; use_wave = 1; @@ -324,7 +324,7 @@ void MainSession::default_window_positions(int window_config) mwindow->edl->session->audio_channels, 1); else - lwindow_w = 100; + lwindow_w = xS(100); lwindow_y = 0; lwindow_x = root_w - lwindow_w; @@ -332,36 +332,36 @@ void MainSession::default_window_positions(int window_config) rwindow_x = root_x; rwindow_y = root_y; - rwindow_h = 500; - rwindow_w = 650; + rwindow_h = yS(500); + rwindow_w = xS(650); cswindow_x = root_x; cswindow_y = root_y; - cswindow_w = 1280; - cswindow_h = 600; + cswindow_w = xS(1280); + cswindow_h = yS(600); if( !dual_head || window_config != 2 ) { - rmonitor_x = rwindow_x + rwindow_w + 10; + rmonitor_x = rwindow_x + rwindow_w + xS(10); rmonitor_y = rwindow_y; rmonitor_w = root_x + root_w - rmonitor_x; rmonitor_h = rwindow_h; } else { - rmonitor_x = cswindow_x = 50; - rmonitor_y = cswindow_y = 50; - rmonitor_w = b_root_w-100; - rmonitor_h = b_root_h-100; + rmonitor_x = cswindow_x = xS(50); + rmonitor_y = cswindow_y = yS(50); + rmonitor_w = b_root_w-xS(100); + rmonitor_h = b_root_h-yS(100); if( cswindow_w < rmonitor_w ) cswindow_w = rmonitor_w; if( cswindow_h < rmonitor_h ) cswindow_h = rmonitor_h; } swindow_x = root_x; swindow_y = root_y; - swindow_w = 600; - swindow_h = 400; + swindow_w = xS(600); + swindow_h = yS(400); - batchrender_w = 750; - batchrender_h = 400; + batchrender_w = xS(750); + batchrender_h = yS(400); batchrender_x = root_w / 2 - batchrender_w / 2; batchrender_y = root_h / 2 - batchrender_h / 2; } diff --git a/cinelerra-5.1/cinelerra/manualgoto.C b/cinelerra-5.1/cinelerra/manualgoto.C index 8aa5cabd..eeb1a12e 100644 --- a/cinelerra-5.1/cinelerra/manualgoto.C +++ b/cinelerra-5.1/cinelerra/manualgoto.C @@ -27,6 +27,9 @@ #include "mwindowgui.h" #include "keys.h" +#define MGT_W xS(250) +#define MGT_H yS(80) + ManualGoto::ManualGoto(MWindow *mwindow, EditPanel *panel) : BC_DialogThread() { @@ -43,8 +46,8 @@ ManualGoto::~ManualGoto() BC_Window *ManualGoto::new_gui() { BC_DisplayInfo dpy_info; - int x = dpy_info.get_abs_cursor_x() - 250 / 2; - int y = dpy_info.get_abs_cursor_y() - 80 / 2; + int x = dpy_info.get_abs_cursor_x() - MGT_W / 2; + int y = dpy_info.get_abs_cursor_y() - MGT_H / 2; gotowindow = new ManualGotoWindow(this, x, y); gotowindow->create_objects(); double position = panel->get_position(); @@ -72,7 +75,7 @@ void ManualGoto::handle_done_event(int result) ManualGotoWindow::ManualGotoWindow(ManualGoto *mango, int x, int y) : BC_Window(_(PROGRAM_NAME ": Goto position"), x, y, - 250, 80, 250, 80, 0, 0, 1) + MGT_W, MGT_H, MGT_W, MGT_H, 0, 0, 1) { this->mango = mango; } @@ -118,22 +121,22 @@ void ManualGotoWindow::update_position(double position) void ManualGotoWindow::create_objects() { lock_window("ManualGotoWindow::create_objects"); - int x = 76, y = 5; + int x = xS(76), y = yS(5); BC_Title *title = new BC_Title(x - 2, y, _("hour min sec msec"), SMALLFONT); add_subwindow(title); y += title->get_h() + 3; - signtitle = new BC_Title(x - 17, y, "=", LARGEFONT); + signtitle = new BC_Title(x - xS(17), y, "=", LARGEFONT); add_subwindow(signtitle); - hours = new ManualGotoNumber(this, x, y, 16, 9, "%i"); + hours = new ManualGotoNumber(this, x, y, xS(16), 9, "%i"); add_subwindow(hours); x += hours->get_w() + 4; - minutes = new ManualGotoNumber(this, x, y, 26, 59, "%02i"); + minutes = new ManualGotoNumber(this, x, y, xS(26), 59, "%02i"); add_subwindow(minutes); x += minutes->get_w() + 4; - seconds = new ManualGotoNumber(this, x, y, 26, 59, "%02i"); + seconds = new ManualGotoNumber(this, x, y, xS(26), 59, "%02i"); add_subwindow(seconds); x += seconds->get_w() + 4; - msecs = new ManualGotoNumber(this, x, y, 34, 999, "%03i"); + msecs = new ManualGotoNumber(this, x, y, xS(34), 999, "%03i"); add_subwindow(msecs); - y += hours->get_h() + 10; + y += hours->get_h() + yS(10); add_subwindow(new BC_OKButton(this)); add_subwindow(new BC_CancelButton(this)); diff --git a/cinelerra-5.1/cinelerra/menuattachtransition.C b/cinelerra-5.1/cinelerra/menuattachtransition.C index 13307fb9..efd0a823 100644 --- a/cinelerra-5.1/cinelerra/menuattachtransition.C +++ b/cinelerra-5.1/cinelerra/menuattachtransition.C @@ -123,7 +123,7 @@ TransitionDialog::TransitionDialog(MWindow *mwindow, : BC_Window(_("Attach Transition"), x, y, mwindow->session->transitiondialog_w, mwindow->session->transitiondialog_h, - 320, 240, 1, 0, 1) + xS(320), yS(240), 1, 0, 1) { this->mwindow = mwindow; this->thread = thread; @@ -170,21 +170,21 @@ TransitionDefaultText::~TransitionDefaultText() void TransitionDialog::create_objects() { - int x = 10; - int y = 10; + int x = xS(10); + int y = yS(10); lock_window("TransitionDialog::create_objects"); add_subwindow(name_title = new BC_Title(x, y, _("Select transition from list"))); - y += name_title->get_h() + 5; + y += name_title->get_h() + yS(5); add_subwindow(name_list = new TransitionDialogName(thread, &thread->transition_names, x, y, get_w() - x - x, - get_h() - y - BC_OKButton::calculate_h() - 100)); - y += name_list->get_h() + 20; + get_h() - y - BC_OKButton::calculate_h() - yS(100))); + y += name_list->get_h() + yS(20); add_subwindow(set_default = new TransitionSetDefault(this, x, y)); - y += set_default->get_h() + 10; + y += set_default->get_h() + yS(10); const char *default_transition = ""; EDL *edl = mwindow->edl; switch( thread->data_type ) { @@ -196,7 +196,7 @@ void TransitionDialog::create_objects() break; } add_subwindow(set_default_text = new TransitionDefaultText(this, x, y, - get_w()-x-20, default_transition)); + get_w()-x-xS(20), default_transition)); if( thread->number >= 0 ) { name_list->update_selection(&thread->transition_names, thread->number, 0); name_list->draw_items(0); @@ -210,22 +210,21 @@ void TransitionDialog::create_objects() int TransitionDialog::resize_event(int w, int h) { - int x = 10; - int y = 10; + int x = xS(10); + int y = yS(10); name_title->reposition_window(x, y); - y += name_title->get_h() + 5; + y += name_title->get_h() + yS(5); name_list->reposition_window(x, y, - w - x - x, h - y - BC_OKButton::calculate_h() - 100); - y += name_list->get_h() + 20; + w - x - x, h - y - BC_OKButton::calculate_h() - yS(100)); + y += name_list->get_h() + yS(20); set_default->reposition_window(x, y); - y += set_default->get_h() + 10; - set_default_text->reposition_window(x, y, get_w()-x-20); + y += set_default->get_h() + yS(10); + set_default_text->reposition_window(x, y, get_w()-x-xS(20)); return 1; } - TransitionDialogName::TransitionDialogName(TransitionDialogThread *thread, ArrayList *standalone_data, int x, int y, int w, int h) : BC_ListBox(x, @@ -252,6 +251,3 @@ int TransitionDialogName::selection_changed() return 1; } - - - diff --git a/cinelerra-5.1/cinelerra/menueffects.C b/cinelerra-5.1/cinelerra/menueffects.C index d8dfdfab..1dcbe8a7 100644 --- a/cinelerra-5.1/cinelerra/menueffects.C +++ b/cinelerra-5.1/cinelerra/menueffects.C @@ -566,15 +566,11 @@ MenuEffectWindow::MenuEffectWindow(MWindow *mwindow, ArrayList *plugin_list, Asset *asset) : BC_Window(_(PROGRAM_NAME ": Render effect"), - mwindow->gui->get_abs_cursor_x(1), + mwindow->gui->get_abs_cursor_x(1), mwindow->gui->get_abs_cursor_y(1) - mwindow->session->menueffect_h / 2, mwindow->session->menueffect_w, mwindow->session->menueffect_h, - 580, - 350, - 1, - 0, - 1) + xS(580), yS(350), 1, 0, 1) { this->menueffects = menueffects; this->plugin_list = plugin_list; @@ -607,11 +603,12 @@ void MenuEffectWindow::create_objects() add_subwindow(list_title = new BC_Title(mwindow->theme->menueffect_list_x, mwindow->theme->menueffect_list_y, _("Select an effect"))); + int ys5 = yS(5); add_subwindow(list = new MenuEffectWindowList(this, mwindow->theme->menueffect_list_x, - mwindow->theme->menueffect_list_y + list_title->get_h() + 5, + mwindow->theme->menueffect_list_y + list_title->get_h() + ys5, mwindow->theme->menueffect_list_w, - mwindow->theme->menueffect_list_h - list_title->get_h() - 5, + mwindow->theme->menueffect_list_h - list_title->get_h() - ys5, plugin_list)); } @@ -649,10 +646,11 @@ int MenuEffectWindow::resize_event(int w, int h) { list_title->reposition_window(mwindow->theme->menueffect_list_x, mwindow->theme->menueffect_list_y); + int ys5 = yS(5); list->reposition_window(mwindow->theme->menueffect_list_x, - mwindow->theme->menueffect_list_y + list_title->get_h() + 5, + mwindow->theme->menueffect_list_y + list_title->get_h() + ys5, mwindow->theme->menueffect_list_w, - mwindow->theme->menueffect_list_h - list_title->get_h() - 5); + mwindow->theme->menueffect_list_h - list_title->get_h() - ys5); } if(file_title) file_title->reposition_window(mwindow->theme->menueffect_file_x, @@ -719,12 +717,7 @@ MenuEffectWindowList::MenuEffectWindowList(MenuEffectWindow *window, int w, int h, ArrayList *plugin_list) - : BC_ListBox(x, - y, - w, - h, - LISTBOX_TEXT, - plugin_list) + : BC_ListBox(x, y, w, h, LISTBOX_TEXT, plugin_list) { this->window = window; } @@ -737,12 +730,14 @@ int MenuEffectWindowList::handle_event() } #define PROMPT_TEXT _("Set up effect panel and hit \"OK\"") +#define MEP_W xS(260) +#define MEP_H yS(100) MenuEffectPrompt::MenuEffectPrompt(MWindow *mwindow) : BC_Window(_(PROGRAM_NAME ": Effect Prompt"), - mwindow->gui->get_abs_cursor_x(1) - 260 / 2, - mwindow->gui->get_abs_cursor_y(1) - 300, - MenuEffectPrompt::calculate_w(mwindow->gui), + mwindow->gui->get_abs_cursor_x(1) - MEP_W/2, + mwindow->gui->get_abs_cursor_y(1) - MEP_H/2, + MenuEffectPrompt::calculate_w(mwindow->gui), MenuEffectPrompt::calculate_h(mwindow->gui), MenuEffectPrompt::calculate_w(mwindow->gui), MenuEffectPrompt::calculate_h(mwindow->gui), @@ -752,15 +747,15 @@ MenuEffectPrompt::MenuEffectPrompt(MWindow *mwindow) int MenuEffectPrompt::calculate_w(BC_WindowBase *gui) { - int w = BC_Title::calculate_w(gui, PROMPT_TEXT) + 10; - w = MAX(w, BC_OKButton::calculate_w() + BC_CancelButton::calculate_w() + 30); + int w = BC_Title::calculate_w(gui, PROMPT_TEXT) + xS(10); + w = MAX(w, BC_OKButton::calculate_w() + BC_CancelButton::calculate_w() + xS(30)); return w; } int MenuEffectPrompt::calculate_h(BC_WindowBase *gui) { int h = BC_Title::calculate_h(gui, PROMPT_TEXT); - h += BC_OKButton::calculate_h() + 30; + h += BC_OKButton::calculate_h() + yS(30); return h; } @@ -768,7 +763,7 @@ int MenuEffectPrompt::calculate_h(BC_WindowBase *gui) void MenuEffectPrompt::create_objects() { lock_window("MenuEffectPrompt::create_objects"); - int x = 10, y = 10; + int x = xS(10), y = yS(10); BC_Title *title; add_subwindow(title = new BC_Title(x, y, PROMPT_TEXT)); add_subwindow(new BC_OKButton(this)); diff --git a/cinelerra-5.1/cinelerra/mixersalign.C b/cinelerra-5.1/cinelerra/mixersalign.C index 8092b14a..b5fe9227 100644 --- a/cinelerra-5.1/cinelerra/mixersalign.C +++ b/cinelerra-5.1/cinelerra/mixersalign.C @@ -85,7 +85,7 @@ MixersAlignMixerList::MixersAlignMixerList(MixersAlignWindow *gui, this->dialog = dialog; this->gui = gui; for( int i=MIX_SZ; --i>=0; ) { - col_widths[i] = mix_widths[i]; + col_widths[i] = xS(mix_widths[i]); col_titles[i] = _(mix_titles[i]); } } @@ -200,7 +200,7 @@ MixersAlignMTrackList::MixersAlignMTrackList(MixersAlignWindow *gui, this->dialog = dialog; this->gui = gui; for( int i=MTK_SZ; --i>=0; ) { - col_widths[i] = mtk_widths[i]; + col_widths[i] = xS(mtk_widths[i]); col_titles[i] = _(mtk_titles[i]); } } @@ -273,7 +273,7 @@ MixersAlignATrackList::MixersAlignATrackList(MixersAlignWindow *gui, this->dialog = dialog; this->gui = gui; for( int i=ATK_SZ; --i>=0; ) { - col_widths[i] = atk_widths[i]; + col_widths[i] = xS(atk_widths[i]); col_titles[i] = _(atk_titles[i]); } } @@ -479,7 +479,7 @@ int MixersAlignUndoItem::handle_event() MixersAlignUndo::MixersAlignUndo(MixersAlignWindow *gui, MixersAlign *dialog, int x, int y) - : BC_PopupMenu(x, y, 100, _("Undo")) + : BC_PopupMenu(x, y, xS(100), _("Undo")) { this->gui = gui; this->dialog = dialog; @@ -505,7 +505,7 @@ void MixersAlignUndo::add_undo_item(int no) MixersAlignCheckPoint::MixersAlignCheckPoint(MixersAlignWindow *gui, MixersAlign *dialog, int x, int y) - : BC_GenericButton(x, y, 100, _("CheckPoint")) + : BC_GenericButton(x, y, xS(100), _("CheckPoint")) { this->gui = gui; this->dialog = dialog; @@ -518,7 +518,7 @@ int MixersAlignCheckPoint::handle_event() } MixersAlignWindow::MixersAlignWindow(MixersAlign *dialog, int x, int y) - : BC_Window(_("Align Mixers"), x, y, 880, 380, 880, 380, 1) + : BC_Window(_("Align Mixers"), x, y, xS(880), yS(380), xS(880), yS(380), 1) { this->dialog = dialog; } @@ -528,7 +528,9 @@ MixersAlignWindow::~MixersAlignWindow() void MixersAlignWindow::create_objects() { - int x = 10, y = 10, w4 = (get_w()-x-10)/4, lw = w4 + 20; + int xs10 = xS(10), xs20 = xS(20); + int ys10 = yS(10), ys20 = yS(20); + int x = xs10, y = ys10, w4 = (get_w()-x-xs10)/4, lw = w4 + xs20; int x1 = x, x2 = x1 + lw , x3 = x2 + lw, x4 = get_w()-x; mixer_title = new BC_Title(x1,y, _("Mixers:"), MEDIUMFONT, YELLOW); add_subwindow(mixer_title); @@ -536,25 +538,25 @@ void MixersAlignWindow::create_objects() add_subwindow(mtrack_title); atrack_title = new BC_Title(x3,y, _("Audio Tracks:"), MEDIUMFONT, YELLOW); add_subwindow(atrack_title); - y += mixer_title->get_h() + 10; - int y1 = y, y2 = get_h() - BC_OKButton::calculate_h() - 32; + y += mixer_title->get_h() + ys10; + int y1 = y, y2 = get_h() - BC_OKButton::calculate_h() - yS(32); int lh = y2 - y1; - mixer_list = new MixersAlignMixerList(this, dialog, x1, y, x2-x1-20, lh); + mixer_list = new MixersAlignMixerList(this, dialog, x1, y, x2-x1-xs20, lh); add_subwindow(mixer_list); - mtrack_list = new MixersAlignMTrackList(this, dialog, x2, y, x3-x2-20, lh); + mtrack_list = new MixersAlignMTrackList(this, dialog, x2, y, x3-x2-xs20, lh); add_subwindow(mtrack_list); - atrack_list = new MixersAlignATrackList(this, dialog, x3, y, x4-x3-20, lh); + atrack_list = new MixersAlignATrackList(this, dialog, x3, y, x4-x3-xs20, lh); add_subwindow(atrack_list); - int xr = x2-10 - MixersAlignReset::calculate_width(this); - y1 = y2+20; + int xr = x2-xs10 - MixersAlignReset::calculate_width(this); + y1 = y2+ys20; add_subwindow(reset = new MixersAlignReset(this, dialog, xr, y1)); - add_subwindow(match = new MixersAlignMatch(this, dialog, x2+10, y1)); - int xa = x3-10 - MixersAlignNudgeTracks::calculate_width(this); + add_subwindow(match = new MixersAlignMatch(this, dialog, x2+xs10, y1)); + int xa = x3-xs10 - MixersAlignNudgeTracks::calculate_width(this); add_subwindow(nudge_tracks = new MixersAlignNudgeTracks(this, dialog, xa, y1)); - y2 = y1 + nudge_tracks->get_h() + 10; + y2 = y1 + nudge_tracks->get_h() + ys10; add_subwindow(match_all = new MixersAlignMatchAll(this, dialog, xr, y2)); add_subwindow(nudge_selected = new MixersAlignNudgeSelected(this, dialog, xa, y2)); - int xu = x3+10; + int xu = x3+xs10; add_subwindow(check_point = new MixersAlignCheckPoint(this, dialog, xu, y1)); add_subwindow(undo = new MixersAlignUndo(this, dialog, xu, y2)); undo->create_objects(); @@ -565,27 +567,29 @@ void MixersAlignWindow::create_objects() int MixersAlignWindow::resize_event(int w, int h) { - int x = 10, y = 10, w4 = (w-x-10)/4, lw = w4 + 20; + int xs10 = xS(10), xs20 = xS(20); + int ys10 = yS(10), ys20 = yS(20); + int x = xs10, y = ys10, w4 = (w-x-xs10)/4, lw = w4 + xs20; int x1 = x, x2 = x1 + lw , x3 = x2 + lw, x4 = w-x; mixer_title->reposition_window(x1, y); mtrack_title->reposition_window(x2, y); atrack_title->reposition_window(x3, y); - y += mixer_title->get_h() + 10; - int y1 = y, y2 = h - BC_OKButton::calculate_h() - 32; + y += mixer_title->get_h() + ys10; + int y1 = y, y2 = h - BC_OKButton::calculate_h() - yS(32); int lh = y2 - y1; - mixer_list->reposition_window(x1, y, x2-x1-20, lh); - mtrack_list->reposition_window(x2, y, x3-x2-20, lh); - atrack_list->reposition_window(x3, y, x4-x3-20, lh); - int xr = x2-10 - MixersAlignReset::calculate_width(this); - y1 = y2+20; + mixer_list->reposition_window(x1, y, x2-x1-xs20, lh); + mtrack_list->reposition_window(x2, y, x3-x2-xs20, lh); + atrack_list->reposition_window(x3, y, x4-x3-xs20, lh); + int xr = x2-xs10 - MixersAlignReset::calculate_width(this); + y1 = y2+ys20; reset->reposition_window(xr, y1); - match->reposition_window(x2+10, y1); - int xa = x3-10 - MixersAlignNudgeTracks::calculate_width(this); + match->reposition_window(x2+xs10, y1); + int xa = x3-xs10 - MixersAlignNudgeTracks::calculate_width(this); nudge_tracks->reposition_window(xa, y1); - y2 = y1 + nudge_tracks->get_h() + 10; + y2 = y1 + nudge_tracks->get_h() + ys10; match_all->reposition_window(xr, y2); nudge_selected->reposition_window(xa, y2); - int xu = x3+10; + int xu = x3+xs10; check_point->reposition_window(xu, y1); undo->reposition_window(xu, y2); return 0; diff --git a/cinelerra-5.1/cinelerra/mtimebar.C b/cinelerra-5.1/cinelerra/mtimebar.C index bf00a1b7..7eec4d34 100644 --- a/cinelerra-5.1/cinelerra/mtimebar.C +++ b/cinelerra-5.1/cinelerra/mtimebar.C @@ -101,10 +101,11 @@ void MTimeBar::stop_transport() gui->stop_transport("MTimeBar::stop_transport"); } -#define TEXT_MARGIN 4 -#define TICK_SPACING 5 -#define LINE_MARGIN 3 -#define TICK_MARGIN 16 +#define TEXT_MARGIN xS(4) +#define TICK_SPACING xS(5) +#define LINE_MARGIN yS(3) +#define TICK_MARGIN yS(16) + void MTimeBar::draw_time() { @@ -399,7 +400,7 @@ void MTimeBar::draw_time() set_font(MEDIUMFONT); draw_text(pixel + TEXT_MARGIN, get_text_ascent(MEDIUMFONT), string); - draw_line(pixel, LINE_MARGIN, pixel, get_h() - 2); + draw_line(pixel, LINE_MARGIN, pixel, get_h() - yS(2)); double position2 = start_position + text_interval * (iteration + 1); int pixel2 = (int64_t)(position2 / time_per_pixel) - @@ -413,7 +414,7 @@ void MTimeBar::draw_time() mwindow->edl->local_session->view_start[pane->number]; if(labs(pixel - pixel1) > 1 && labs(pixel - pixel2) > 1) - draw_line(pixel, TICK_MARGIN, pixel, get_h() - 2); + draw_line(pixel, TICK_MARGIN, pixel, get_h() - yS(2)); } iteration++; } diff --git a/cinelerra-5.1/cinelerra/mwindow.C b/cinelerra-5.1/cinelerra/mwindow.C index a99d3098..b074950f 100644 --- a/cinelerra-5.1/cinelerra/mwindow.C +++ b/cinelerra-5.1/cinelerra/mwindow.C @@ -1453,7 +1453,7 @@ void MWindow::tile_mixers() int bw = lt + BC_DisplayInfo::get_right_border(); // borders int bh = top + BC_DisplayInfo::get_bottom_border(); int zx = 0, zy = 0; // window origins - int mw = 10+10, mh = 10+10; // canvas margins + int mw = xS(10+10), mh = yS(10+10); // canvas margins int rsz = 0, n = 0, dz = 0; int ow = edl->session->output_w, oh = edl->session->output_h; for( int i=0; i mx ) xx = mx; if( yy > my ) yy = my; - xx += lt + dz; yy += top + dz; + xx += lt + xS(dz); yy += top + yS(dz); zwindow->reposition(xx,yy, ww,hh); if( zwindow->running() ) { ZWindowGUI *gui = (ZWindowGUI *)zwindow->get_gui(); diff --git a/cinelerra-5.1/cinelerra/mwindowgui.C b/cinelerra-5.1/cinelerra/mwindowgui.C index 5716c37e..477d256c 100644 --- a/cinelerra-5.1/cinelerra/mwindowgui.C +++ b/cinelerra-5.1/cinelerra/mwindowgui.C @@ -80,15 +80,9 @@ // the main window uses its own private colormap for video MWindowGUI::MWindowGUI(MWindow *mwindow) : BC_Window(_(PROGRAM_NAME ": Program"), - mwindow->session->mwindow_x, - mwindow->session->mwindow_y, - mwindow->session->mwindow_w, - mwindow->session->mwindow_h, - 100, - 100, - 1, - 1, - 1) + mwindow->session->mwindow_x, mwindow->session->mwindow_y, + mwindow->session->mwindow_w, mwindow->session->mwindow_h, + xS(100), yS(100), 1, 1, 1) { this->mwindow = mwindow; // samplescroll = 0; @@ -124,7 +118,7 @@ MWindowGUI::MWindowGUI(MWindow *mwindow) keyframe_menu = 0; keyframe_hide = 0; keyvalue_popup = 0; - transition_menu = 0; + transition_menu = 0; remote_control = 0; cwindow_remote_handler = 0; record_remote_handler = 0; @@ -281,9 +275,9 @@ void MWindowGUI::create_objects() add_subwindow(mbuttons = new MButtons(mwindow, this)); mbuttons->create_objects(); - int x1 = mbuttons->get_x() + mbuttons->get_w(), y1 = mbuttons->get_y()+2; + int x1 = mbuttons->get_x() + mbuttons->get_w(), y1 = mbuttons->get_y()+yS(2); add_subwindow(proxy_toggle = new ProxyToggle(mwindow, mbuttons, x1, y1)); - x1 += proxy_toggle->get_w() + 3; + x1 += proxy_toggle->get_w() + xS(3); add_subwindow(ffmpeg_toggle = new FFMpegToggle(mwindow, mbuttons, x1, y1)); pane[TOP_LEFT_PANE] = new TimelinePane(mwindow, @@ -417,9 +411,9 @@ int MWindowGUI::resize_event(int w, int h) mwindow->theme->get_mwindow_sizes(this, w, h); mwindow->theme->draw_mwindow_bg(this); mbuttons->resize_event(); - int x1 = mbuttons->get_x() + mbuttons->get_w(), y1 = mbuttons->get_y()+2; + int x1 = mbuttons->get_x() + mbuttons->get_w(), y1 = mbuttons->get_y()+yS(2); proxy_toggle->reposition_window(x1, y1); - x1 += proxy_toggle->get_w() + 3; + x1 += proxy_toggle->get_w() + xS(3); ffmpeg_toggle->reposition_window(x1, y1); statusbar->resize_event(); zoombar->resize_event(); @@ -1010,10 +1004,9 @@ int MWindowGUI::drag_motion() mwindow->session->current_operation == DRAG_EDIT || mwindow->session->current_operation == DRAG_GROUP || mwindow->session->current_operation == DRAG_AEFFECT_COPY || - mwindow->session->current_operation == DRAG_VEFFECT_COPY ) - { - redraw = 1; - } + mwindow->session->current_operation == DRAG_VEFFECT_COPY ) { + redraw = 1; + } // printf("drag_motion %d %d over_track=%p over_edit=%p\n", diff --git a/cinelerra-5.1/cinelerra/mwindowmove.C b/cinelerra-5.1/cinelerra/mwindowmove.C index 9d8dae5c..c76b9b74 100644 --- a/cinelerra-5.1/cinelerra/mwindowmove.C +++ b/cinelerra-5.1/cinelerra/mwindowmove.C @@ -537,8 +537,7 @@ int MWindow::move_left(int64_t distance) { TimelinePane *pane = gui->get_focused_pane(); if(!distance) - distance = pane->canvas->get_w() / - 10; + distance = pane->canvas->get_w() / 10; edl->local_session->view_start[pane->number] -= distance; samplemovement(edl->local_session->view_start[pane->number], pane->number); @@ -549,8 +548,7 @@ int MWindow::move_right(int64_t distance) { TimelinePane *pane = gui->get_focused_pane(); if(!distance) - distance = pane->canvas->get_w() / - 10; + distance = pane->canvas->get_w() / 10; edl->local_session->view_start[pane->number] += distance; samplemovement(edl->local_session->view_start[pane->number], pane->number); diff --git a/cinelerra-5.1/cinelerra/new.C b/cinelerra-5.1/cinelerra/new.C index de417e1d..f24876bc 100644 --- a/cinelerra-5.1/cinelerra/new.C +++ b/cinelerra-5.1/cinelerra/new.C @@ -54,13 +54,13 @@ #include -#define WIDTH 640 +#define WIDTH xS(640) // full height -#define HEIGHT0 585 +#define HEIGHT0 yS(585) // add tracks dialog -#define HEIGHT1 240 +#define HEIGHT1 yS(240) // offset for folder panel -#define HEIGHT2 440 +#define HEIGHT2 yS(440) New::New(MWindow *mwindow) { @@ -318,7 +318,11 @@ NewWindow::~NewWindow() void NewWindow::create_objects() { - int x = 10, y = 10, x1, y1; + int xs10 = xS(10), xs20 = xS(20); + int ys5 = yS(5), ys10 = yS(10), ys20 = yS(20), ys30 = yS(30); + int xs2 = xS(2), xs64 = xS(64), xs115 = xS(115), xs150 = xS(150); + int ys40 = yS(40); + int x = xs10, y = ys10, x1, y1; BC_TextBox *textbox; BC_Title *title; @@ -328,160 +332,152 @@ void NewWindow::create_objects() add_subwindow( new BC_Title(x, y, new_thread->load_mode == LOADMODE_REPLACE ? _("Parameters for the new project:") : _("Parameters for additional tracks:") ) ); - y += 20; + y += ys20; - format_presets = new NewPresets(mwindow, - this, - x, - y); + format_presets = new NewPresets(mwindow, this, x, y); format_presets->create_objects(); x = format_presets->x; y = format_presets->y; - y += 40; + y += ys40; y1 = y; add_subwindow(new BC_Title(x, y, _("Audio"), LARGEFONT)); - y += 30; + y += ys30; x1 = x; add_subwindow(new BC_Title(x1, y, _("Tracks:"))); - x1 += 100; + int xs100 = xS(100); + x1 += xs100; add_subwindow(atracks = new NewATracks(this, "", x1, y)); x1 += atracks->get_w(); add_subwindow(new NewATracksTumbler(this, x1, y)); - y += atracks->get_h() + 5; + y += atracks->get_h() + ys5; if( new_thread->load_mode == LOADMODE_REPLACE ) { x1 = x; add_subwindow(new BC_Title(x1, y, _("Channels:"))); - x1 += 100; + x1 += xs100; add_subwindow(achannels = new NewAChannels(this, "", x1, y)); x1 += achannels->get_w(); add_subwindow(new NewAChannelsTumbler(this, x1, y)); - y += achannels->get_h() + 5; + y += achannels->get_h() + ys5; x1 = x; add_subwindow(new BC_Title(x1, y, _("Samplerate:"))); - x1 += 100; + x1 += xs100; add_subwindow(sample_rate = new NewSampleRate(this, "", x1, y)); x1 += sample_rate->get_w(); add_subwindow(new SampleRatePulldown(mwindow, sample_rate, x1, y)); } - x += 250; + x += xS(250); y = y1; add_subwindow(new BC_Title(x, y, _("Video"), LARGEFONT)); - y += 30; + y += ys30; x1 = x; add_subwindow(new BC_Title(x1, y, _("Tracks:"))); - x1 += 115; + x1 += xs115; add_subwindow(vtracks = new NewVTracks(this, "", x1, y)); x1 += vtracks->get_w(); add_subwindow(new NewVTracksTumbler(this, x1, y)); - y += vtracks->get_h() + 5; + y += vtracks->get_h() + ys5; if( new_thread->load_mode == LOADMODE_REPLACE ) { // x1 = x; // add_subwindow(new BC_Title(x1, y, _("Channels:"))); -// x1 += 100; +// x1 += xs100; // add_subwindow(vchannels = new NewVChannels(this, "", x1, y)); // x1 += vchannels->get_w(); // add_subwindow(new NewVChannelsTumbler(this, x1, y)); -// y += vchannels->get_h() + 5; +// y += vchannels->get_h() + ys5; x1 = x; add_subwindow(new BC_Title(x1, y, _("Framerate:"))); - x1 += 115; + x1 += xs115; add_subwindow(frame_rate = new NewFrameRate(this, "", x1, y)); x1 += frame_rate->get_w(); add_subwindow(new FrameRatePulldown(mwindow, frame_rate, x1, y)); - y += frame_rate->get_h() + 5; + y += frame_rate->get_h() + ys5; } // x1 = x; // add_subwindow(new BC_Title(x1, y, _("Canvas size:"))); -// x1 += 100; +// x1 += xs100; // add_subwindow(canvas_w_text = new NewTrackW(this, x1, y)); -// x1 += canvas_w_text->get_w() + 2; +// x1 += canvas_w_text->get_w() + xs2; // add_subwindow(new BC_Title(x1, y, "x")); -// x1 += 10; +// x1 += xs10; // add_subwindow(canvas_h_text = new NewTrackH(this, x1, y)); // x1 += canvas_h_text->get_w(); // add_subwindow(new FrameSizePulldown(mwindow, -// canvas_w_text, -// canvas_h_text, -// x1, -// y)); -// x1 += 100; +// canvas_w_text, canvas_h_text, x1, y)); +// x1 += xs100; // add_subwindow(new NewCloneToggle(mwindow, this, x1, y)); -// y += canvas_h_text->get_h() + 5; +// y += canvas_h_text->get_h() + ys5; x1 = x; add_subwindow(new BC_Title(x1, y, new_thread->load_mode == LOADMODE_REPLACE ? _("Canvas size:") : _("Track size:"))); - x1 += 115; + x1 += xs115; add_subwindow(output_w_text = new NewOutputW(this, x1, y)); - x1 += output_w_text->get_w() + 2; + x1 += output_w_text->get_w() + xs2; add_subwindow(new BC_Title(x1, y, "x")); - x1 += 10; + x1 += xs10; add_subwindow(output_h_text = new NewOutputH(this, x1, y)); x1 += output_h_text->get_w(); FrameSizePulldown *pulldown; add_subwindow(pulldown = new FrameSizePulldown(mwindow->theme, - output_w_text, - output_h_text, - x1, - y)); - x1 += pulldown->get_w() + 10; + output_w_text, output_h_text, x1, y)); + x1 += pulldown->get_w() + xs10; add_subwindow(new NewSwapExtents(mwindow, this, x1, y)); - y += output_h_text->get_h() + 5; + y += output_h_text->get_h() + ys5; if( new_thread->load_mode == LOADMODE_REPLACE ) { x1 = x; add_subwindow(new BC_Title(x1, y, _("Aspect ratio:"))); - x1 += 115; + x1 += xs115; add_subwindow(aspect_w_text = new NewAspectW(this, "", x1, y)); - x1 += aspect_w_text->get_w() + 2; + x1 += aspect_w_text->get_w() + xs2; add_subwindow(new BC_Title(x1, y, ":")); - x1 += 10; + x1 += xs10; add_subwindow(aspect_h_text = new NewAspectH(this, "", x1, y)); x1 += aspect_h_text->get_w(); add_subwindow(new AspectPulldown(mwindow, aspect_w_text, aspect_h_text, x1, y)); x1 = aspect_w_text->get_x(); - y += aspect_w_text->get_h() + 5; + y += aspect_w_text->get_h() + ys5; add_subwindow(new NewAspectAuto(this, x1, y)); - y += 40; + y += ys40; add_subwindow(title = new BC_Title(x, y, _("Color model:"))); x1 = x + title->get_w(); - y1 = y; y += title->get_h() + 10; + y1 = y; y += title->get_h() + ys10; add_subwindow(title = new BC_Title(x, y, _("Interlace mode:"))); int x2 = x + title->get_w(); - int y2 = y; y += title->get_h() + 10; + int y2 = y; y += title->get_h() + ys10; if( x1 < x2 ) x1 = x2; - x1 += 20; - add_subwindow(textbox = new BC_TextBox(x1, y1, 150, 1, "")); + x1 += xs20; + add_subwindow(textbox = new BC_TextBox(x1, y1, xs150, 1, "")); add_subwindow(color_model = new ColormodelPulldown(mwindow, textbox, &new_edl->session->color_model, x1+textbox->get_w(), y1)); - add_subwindow(textbox = new BC_TextBox(x1, y2, 150, 1, "")); + add_subwindow(textbox = new BC_TextBox(x1, y2, xs150, 1, "")); add_subwindow(interlace_pulldown = new InterlacemodePulldown(mwindow, textbox, &new_edl->session->interlace_mode, (ArrayList*)&mwindow->interlace_project_modes, x1+textbox->get_w(), y2)); - x = 20; y = HEIGHT2; + x = xs20; y = HEIGHT2; add_subwindow(title = new BC_Title(x, y, _("Create project folder in:"))); - x1 = x; y += title->get_h() + 5; - add_subwindow(folder = new BC_TextBox(x1, y, get_w()-x1-64, 1, "")); - x1 += folder->get_w() + 10; + x1 = x; y += title->get_h() + ys5; + add_subwindow(folder = new BC_TextBox(x1, y, get_w()-x1-xs64, 1, "")); + x1 += folder->get_w() + xs10; add_subwindow(recent_folder = new BC_RecentList("FOLDER", mwindow->defaults, folder)); recent_folder->load_items("PROJECT"); x1 = recent_folder->get_x() + recent_folder->get_w(); add_subwindow(new BrowseButton(mwindow->theme, this, folder, x1, y, "", _("Project Directory"), _("Project Directory Path:"), 1)); - y += folder->get_h() + 10; x1 = x; + y += folder->get_h() + ys10; x1 = x; add_subwindow(title = new BC_Title(x1, y, _("Project Name:"))); - x1 += title->get_w() + 10; - add_subwindow(name = new BC_TextBox(x1, y, get_w()-x1-64, 1, "")); + x1 += title->get_w() + xs10; + add_subwindow(name = new BC_TextBox(x1, y, get_w()-x1-xs64, 1, "")); } add_subwindow(new BC_OKButton(this, @@ -533,7 +529,7 @@ EDL* NewPresets::get_edl() NewATracks::NewATracks(NewWindow *nwindow, const char *text, int x, int y) - : BC_TextBox(x, y, 90, 1, text) + : BC_TextBox(x, y, xS(90), 1, text) { this->nwindow = nwindow; } @@ -566,7 +562,7 @@ int NewATracksTumbler::handle_down_event() NewAChannels::NewAChannels(NewWindow *nwindow, const char *text, int x, int y) - : BC_TextBox(x, y, 90, 1, text) + : BC_TextBox(x, y, xS(90), 1, text) { this->nwindow = nwindow; } @@ -600,7 +596,7 @@ int NewAChannelsTumbler::handle_down_event() NewSampleRate::NewSampleRate(NewWindow *nwindow, const char *text, int x, int y) - : BC_TextBox(x, y, 90, 1, text) + : BC_TextBox(x, y, xS(90), 1, text) { this->nwindow = nwindow; } @@ -613,7 +609,7 @@ int NewSampleRate::handle_event() SampleRatePulldown::SampleRatePulldown(MWindow *mwindow, BC_TextBox *output, int x, int y) - : BC_ListBox(x, y, 100, 200, LISTBOX_TEXT, + : BC_ListBox(x, y, xS(100), xS(200), LISTBOX_TEXT, &mwindow->theme->sample_rates, 0, 0, 1, 0, 1) { this->mwindow = mwindow; @@ -629,7 +625,7 @@ int SampleRatePulldown::handle_event() NewVTracks::NewVTracks(NewWindow *nwindow, const char *text, int x, int y) - : BC_TextBox(x, y, 90, 1, text) + : BC_TextBox(x, y, xS(90), 1, text) { this->nwindow = nwindow; } @@ -663,7 +659,7 @@ int NewVTracksTumbler::handle_down_event() NewVChannels::NewVChannels(NewWindow *nwindow, const char *text, int x, int y) - : BC_TextBox(x, y, 90, 1, text) + : BC_TextBox(x, y, xS(90), 1, text) { this->nwindow = nwindow; } @@ -697,7 +693,7 @@ int NewVChannelsTumbler::handle_down_event() NewFrameRate::NewFrameRate(NewWindow *nwindow, const char *text, int x, int y) - : BC_TextBox(x, y, 90, 1, text) + : BC_TextBox(x, y, xS(90), 1, text) { this->nwindow = nwindow; } @@ -711,7 +707,7 @@ int NewFrameRate::handle_event() FrameRatePulldown::FrameRatePulldown(MWindow *mwindow, BC_TextBox *output, int x, int y) - : BC_ListBox(x, y, 150, 250, LISTBOX_TEXT, + : BC_ListBox(x, y, xS(150), yS(250), LISTBOX_TEXT, &mwindow->theme->frame_rates, 0, 0, 1, 0, 1) { this->mwindow = mwindow; @@ -727,7 +723,7 @@ int FrameRatePulldown::handle_event() FrameSizePulldown::FrameSizePulldown(Theme *theme, BC_TextBox *output_w, BC_TextBox *output_h, int x, int y) - : BC_ListBox(x, y, 180, 250, LISTBOX_TEXT, + : BC_ListBox(x, y, xS(180), yS(250), LISTBOX_TEXT, &theme->frame_sizes, 0, 0, 1, 0, 1) { this->theme = theme; @@ -760,7 +756,7 @@ int FrameSizePulldown::handle_event() NewOutputW::NewOutputW(NewWindow *nwindow, int x, int y) - : BC_TextBox(x, y, 70, 1, nwindow->new_edl->session->output_w) + : BC_TextBox(x, y, xS(70), 1, nwindow->new_edl->session->output_w) { this->nwindow = nwindow; } @@ -773,7 +769,7 @@ int NewOutputW::handle_event() NewOutputH::NewOutputH(NewWindow *nwindow, int x, int y) - : BC_TextBox(x, y, 70, 1, nwindow->new_edl->session->output_h) + : BC_TextBox(x, y, xS(70), 1, nwindow->new_edl->session->output_h) { this->nwindow = nwindow; } @@ -786,7 +782,7 @@ int NewOutputH::handle_event() NewAspectW::NewAspectW(NewWindow *nwindow, const char *text, int x, int y) - : BC_TextBox(x, y, 70, 1, text) + : BC_TextBox(x, y, xS(70), 1, text) { this->nwindow = nwindow; } @@ -799,7 +795,7 @@ int NewAspectW::handle_event() NewAspectH::NewAspectH(NewWindow *nwindow, const char *text, int x, int y) - : BC_TextBox(x, y, 70, 1, text) + : BC_TextBox(x, y, xS(70), 1, text) { this->nwindow = nwindow; } @@ -813,7 +809,7 @@ int NewAspectH::handle_event() AspectPulldown::AspectPulldown(MWindow *mwindow, BC_TextBox *output_w, BC_TextBox *output_h, int x, int y) - : BC_ListBox(x, y, 100, 200, LISTBOX_TEXT, + : BC_ListBox(x, y, xS(100), yS(200), LISTBOX_TEXT, &mwindow->theme->aspect_ratios, 0, 0, 1, 0, 1) { this->mwindow = mwindow; @@ -853,7 +849,7 @@ ColormodelItem::ColormodelItem(const char *text, int value) ColormodelPulldown::ColormodelPulldown(MWindow *mwindow, BC_TextBox *output_text, int *output_value, int x, int y) - : BC_ListBox(x, y, 200, 150, LISTBOX_TEXT, + : BC_ListBox(x, y, xS(200), yS(150), LISTBOX_TEXT, (ArrayList*)&mwindow->colormodels, 0, 0, 1, 0, 1) { this->mwindow = mwindow; @@ -896,7 +892,7 @@ InterlacemodePulldown::InterlacemodePulldown(MWindow *mwindow, ArrayList *data, int x, int y) - : BC_ListBox(x, y, 200, 150, LISTBOX_TEXT, data, 0, 0, 1, 0, 1) + : BC_ListBox(x, y, xS(200), xS(150), LISTBOX_TEXT, data, 0, 0, 1, 0, 1) { this->mwindow = mwindow; this->output_text = output_text; diff --git a/cinelerra-5.1/cinelerra/performanceprefs.C b/cinelerra-5.1/cinelerra/performanceprefs.C index 687e7e48..12a8fc95 100644 --- a/cinelerra-5.1/cinelerra/performanceprefs.C +++ b/cinelerra-5.1/cinelerra/performanceprefs.C @@ -54,11 +54,12 @@ PerformancePrefs::~PerformancePrefs() void PerformancePrefs::create_objects() { + int xs5 = xS(5), xs10 = xS(10); + int ys5 = yS(5), ys10 = yS(10), ys20 = yS(20), ys30 = yS(30), ys35 = yS(35); int x, y; - int xmargin1; - int xmargin2 = 180; - int xmargin3 = 260; - int xmargin4 = 420; + int xmargin2 = xS(180); + int xmargin3 = xS(260); + int xmargin4 = xS(420); char string[BCTEXTLEN]; BC_Resources *resources = BC_WindowBase::get_resources(); BC_WindowBase *win; @@ -67,70 +68,70 @@ void PerformancePrefs::create_objects() node_list = 0; generate_node_list(); - xmargin1 = x = mwindow->theme->preferencesoptions_x; + int xmargin1 = x = mwindow->theme->preferencesoptions_x; y = mwindow->theme->preferencesoptions_y; int y0 = y; - win = add_subwindow(new BC_Title(x, y + 5, _("Cache size (MB):"), MEDIUMFONT, resources->text_default)); + win = add_subwindow(new BC_Title(x, y + ys5, _("Cache size (MB):"), MEDIUMFONT, resources->text_default)); maxw = win->get_w(); int x1 = x + xmargin4; - win = add_subwindow(new BC_Title(x1, y + 5, _("Use HW Device:"))); - x1 += win->get_w() + 5; + win = add_subwindow(new BC_Title(x1, y + ys5, _("Use HW Device:"))); + x1 += win->get_w() + xs5; PrefsUseHWDev *use_hw_dev = new PrefsUseHWDev(pwindow, this, x1, y); use_hw_dev->create_objects(); - int y1 = y += 30; - win = add_subwindow(new BC_Title(x, y + 5, _("Seconds to preroll renders:"))); + int y1 = y += ys30; + win = add_subwindow(new BC_Title(x, y + ys5, _("Seconds to preroll renders:"))); if((curw = win->get_w()) > maxw) maxw = curw; - maxw += x + 5; + maxw += x + xs5; cache_size = new CICacheSize(maxw, y0, pwindow, this); cache_size->create_objects(); - add_subwindow(new BC_Title(x, y + 5, _("Seconds to preroll renders:"))); + add_subwindow(new BC_Title(x, y + ys5, _("Seconds to preroll renders:"))); PrefsRenderPreroll *preroll = new PrefsRenderPreroll(pwindow, this, maxw, y1); preroll->create_objects(); - y += 30; + y += ys30; x1 = x + xmargin4; - BC_Title *smp_title = new BC_Title(x1, y + 5, _("Project SMP cpus:")); + BC_Title *smp_title = new BC_Title(x1, y + ys5, _("Project SMP cpus:")); add_subwindow(smp_title); - x1 += smp_title->get_w() + 5; + x1 += smp_title->get_w() + xs5; PrefsProjectSMP *proj_smp = new PrefsProjectSMP(pwindow, this, x1, y); proj_smp->create_objects(); PrefsForceUniprocessor *force_1cpu = new PrefsForceUniprocessor(pwindow, x, y); add_subwindow(force_1cpu); - y += 30; + y += ys30; // Background rendering - add_subwindow(new BC_Bar(5, y, get_w() - 10)); - y += 5; + add_subwindow(new BC_Bar(xs5, y, get_w() - xs10)); + y += ys5; add_subwindow(new BC_Title(x, y, _("Background Rendering (Video only)"), LARGEFONT, resources->text_default)); - y1 = y += 30; + y1 = y += ys30; win = add_subwindow(new PrefsUseBRender(pwindow, x, y)); - y += win->get_h() + 10; + y += win->get_h() + ys10; win = add_subwindow(new BC_Title(x, y, _("Frames per background rendering job:"))); - y += win->get_h() + 5; + y += win->get_h() + ys5; PrefsBRenderFragment *brender_fragment = new PrefsBRenderFragment(pwindow, this, x + xmargin3, y); brender_fragment->create_objects(); - y += brender_fragment->get_h() + 5; + y += brender_fragment->get_h() + ys5; win = add_subwindow(new BC_Title(x, y, _("Frames to preroll background:"))); - y += win->get_h() + 5; + y += win->get_h() + ys5; PrefsBRenderPreroll *bpreroll = new PrefsBRenderPreroll(pwindow, this, - x + xmargin3, y + 5); + x + xmargin3, y + ys5); bpreroll->create_objects(); - y += bpreroll->get_h() + 20; + y += bpreroll->get_h() + ys20; x += xmargin4; add_subwindow(new BC_Title(x, y1, _("Output for background rendering:"))); - y1 += 20; + y1 += ys20; brender_tools = new FormatTools(mwindow, this, pwindow->thread->preferences->brender_asset); brender_tools->create_objects(x, y1, @@ -148,46 +149,46 @@ void PerformancePrefs::create_objects() // Renderfarm - add_subwindow(new BC_Bar(5, y, get_w() - 10)); - y += 5; + add_subwindow(new BC_Bar(xs5, y, get_w() - xs10)); + y += ys5; add_subwindow(new BC_Title(x, y, _("Render Farm"), LARGEFONT, resources->text_default)); x1 = get_w() - BC_GenericButton::calculate_w(this, _("Reset rates")) - x; add_subwindow(new PrefsRenderFarmReset(pwindow, this, x1, y)); x1 = x + xmargin4; BC_Title *node_title = new BC_Title(x1, y, _("Nodes:")); add_subwindow(node_title); - x1 += node_title->get_w() + 15; + x1 += node_title->get_w() + xS(15); sprintf(string, _(MASTER_NODE_FRAMERATE_TEXT), pwindow->thread->preferences->local_rate); add_subwindow(master_rate = new BC_Title(x1, y, string)); - add_subwindow(node_list = new PrefsRenderFarmNodes(pwindow, this, x + xmargin4, y+=25)); - add_subwindow(new PrefsRenderFarm(pwindow, x, y+=5)); - add_subwindow(new BC_Title(x, y+=30, _("Hostname:"))); + add_subwindow(node_list = new PrefsRenderFarmNodes(pwindow, this, x + xmargin4, y+=yS(25))); + add_subwindow(new PrefsRenderFarm(pwindow, x, y+=ys5)); + add_subwindow(new BC_Title(x, y+=ys30, _("Hostname:"))); add_subwindow(new BC_Title(x + xmargin3, y, _("Port:"))); - add_subwindow(edit_node = new PrefsRenderFarmEditNode(pwindow, this, x, y+=25)); + add_subwindow(edit_node = new PrefsRenderFarmEditNode(pwindow, this, x, y+=yS(25))); edit_port = new PrefsRenderFarmPort(pwindow, this, x+xmargin3, y); edit_port->create_objects(); - add_subwindow(new PrefsRenderFarmReplaceNode(pwindow, this, x, y+=30)); + add_subwindow(new PrefsRenderFarmReplaceNode(pwindow, this, x, y+=ys30)); add_subwindow(new PrefsRenderFarmNewNode(pwindow, this, x+xmargin2, y)); - add_subwindow(new PrefsRenderFarmSortNodes(pwindow, this, x, y+=30)); + add_subwindow(new PrefsRenderFarmSortNodes(pwindow, this, x, y+=ys30)); add_subwindow(new PrefsRenderFarmDelNode(pwindow, this, x+xmargin2, y)); - add_subwindow(new BC_Title(x, y+=35, _("Client Watchdog Timeout:"))); - renderfarm_watchdog = new PrefsRenderFarmWatchdog(pwindow, this, x+xmargin3, y-5); + add_subwindow(new BC_Title(x, y+=ys35, _("Client Watchdog Timeout:"))); + renderfarm_watchdog = new PrefsRenderFarmWatchdog(pwindow, this, x+xmargin3, y-ys5); renderfarm_watchdog->create_objects(); - add_subwindow(new BC_Title(x, y+=35, _("Total jobs to create:"))); + add_subwindow(new BC_Title(x, y+=ys35, _("Total jobs to create:"))); PrefsRenderFarmJobs *jobs = new PrefsRenderFarmJobs(pwindow, this, - x + xmargin3, y-5); + x + xmargin3, y-ys5); jobs->create_objects(); - y += jobs->get_h() + 5; + y += jobs->get_h() + ys5; win = add_subwindow(new BC_Title(x, y, _("(overridden if new file at each label is checked)"))); -// y += win->get_h() + 5; +// y += win->get_h() + ys5; // add_subwindow(new PrefsRenderFarmVFS(pwindow, this, x, y)); // add_subwindow(new BC_Title(x, y, // _("Filesystem prefix on remote nodes:"))); // add_subwindow(new PrefsRenderFarmMountpoint(pwindow, this, x + xmargin3, y)); -// y += 30; +// y += ys30; } void PerformancePrefs::generate_node_list() @@ -290,7 +291,7 @@ PrefsBRenderFragment::PrefsBRenderFragment(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y) : BC_TumbleTextBox(subwindow, (int64_t)pwindow->thread->preferences->brender_fragment, - (int64_t)1, (int64_t)65535, x, y, 100) + (int64_t)1, (int64_t)65535, x, y, xS(100)) { this->pwindow = pwindow; } @@ -306,7 +307,7 @@ CICacheSize::CICacheSize(int x, int y, (int64_t)pwindow->thread->preferences->cache_size / 0x100000, (int64_t)MIN_CACHE_SIZE / 0x100000, (int64_t)MAX_CACHE_SIZE / 0x100000, - x, y, 100) + x, y, xS(100)) { this->pwindow = pwindow; set_increment(1); @@ -324,7 +325,7 @@ int CICacheSize::handle_event() PrefsUseHWDev::PrefsUseHWDev(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y) - : BC_PopupTextBox(subwindow,0,0,x,y,100,80,LISTBOX_TEXT) + : BC_PopupTextBox(subwindow,0,0,x,y,xS(100),yS(80),LISTBOX_TEXT) { this->pwindow = pwindow; } @@ -357,16 +358,10 @@ int PrefsUseHWDev::handle_event() } PrefsRenderPreroll::PrefsRenderPreroll(PreferencesWindow *pwindow, - PerformancePrefs *subwindow, - int x, - int y) + PerformancePrefs *subwindow, int x, int y) : BC_TumbleTextBox(subwindow, (float)pwindow->thread->preferences->render_preroll, - (float)0, - (float)100, - x, - y, - 100) + 0.f, 100.f, x, y, xS(100)) { this->pwindow = pwindow; set_increment(0.1); @@ -387,11 +382,7 @@ PrefsBRenderPreroll::PrefsBRenderPreroll(PreferencesWindow *pwindow, int y) : BC_TumbleTextBox(subwindow, (int64_t)pwindow->thread->preferences->brender_preroll, - (int64_t)0, - (int64_t)100, - x, - y, - 100) + (int64_t)0, (int64_t)100, x, y, xS(100)) { this->pwindow = pwindow; } @@ -463,11 +454,7 @@ PrefsRenderFarmPort::PrefsRenderFarmPort(PreferencesWindow *pwindow, int y) : BC_TumbleTextBox(subwindow, (int64_t)pwindow->thread->preferences->renderfarm_port, - (int64_t)1, - (int64_t)65535, - x, - y, - 100) + (int64_t)1, (int64_t)65535, x, y, xS(100)) { this->pwindow = pwindow; } @@ -486,11 +473,11 @@ int PrefsRenderFarmPort::handle_event() PrefsRenderFarmNodes::PrefsRenderFarmNodes(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y) - : BC_ListBox(x, y, 340, 230, LISTBOX_TEXT, 0,0,0,1, 0,0, LISTBOX_MULTIPLE) + : BC_ListBox(x, y, xS(340), yS(230), LISTBOX_TEXT, 0,0,0,1, 0,0, LISTBOX_MULTIPLE) { for( int i=0; inodes, titles, widths, PerformancePrefs::TOTAL_COLUMNS, 0, 0, -1, 0, 0); @@ -542,7 +529,7 @@ int PrefsRenderFarmNodes::selection_changed() PrefsRenderFarmEditNode::PrefsRenderFarmEditNode(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y) - : BC_TextBox(x, y, 240, 1, "") + : BC_TextBox(x, y, xS(240), 1, "") { this->pwindow = pwindow; this->subwindow = subwindow; @@ -687,7 +674,7 @@ PrefsProjectSMP::PrefsProjectSMP(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y) : BC_TumbleTextBox(subwindow, (int64_t)pwindow->thread->preferences->project_smp, - (int64_t)1, (int64_t)100, x, y, 100) + (int64_t)1, (int64_t)100, x, y, xS(100)) { this->pwindow = pwindow; } @@ -707,7 +694,7 @@ PrefsRenderFarmJobs::PrefsRenderFarmJobs(PreferencesWindow *pwindow, int y) : BC_TumbleTextBox(subwindow, (int64_t)pwindow->thread->preferences->renderfarm_job_count, - (int64_t)1, (int64_t)100, x, y, 100) + (int64_t)1, (int64_t)100, x, y, xS(100)) { this->pwindow = pwindow; } @@ -723,7 +710,7 @@ int PrefsRenderFarmJobs::handle_event() PrefsRenderFarmMountpoint::PrefsRenderFarmMountpoint(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y) - : BC_TextBox(x, y, 100, 1, + : BC_TextBox(x, y, xS(100), 1, pwindow->thread->preferences->renderfarm_mountpoint) { this->pwindow = pwindow; @@ -759,7 +746,7 @@ PrefsRenderFarmWatchdog::PrefsRenderFarmWatchdog(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y) : BC_TumbleTextBox(subwindow, (int64_t)pwindow->thread->preferences->renderfarm_watchdog_timeout, - (int64_t)0, (int64_t)1000, x, y, 100) + (int64_t)0, (int64_t)1000, x, y, xS(100)) { this->pwindow = pwindow; set_increment(15); diff --git a/cinelerra-5.1/cinelerra/playbackprefs.C b/cinelerra-5.1/cinelerra/playbackprefs.C index 264566f1..e220aba4 100644 --- a/cinelerra-5.1/cinelerra/playbackprefs.C +++ b/cinelerra-5.1/cinelerra/playbackprefs.C @@ -59,6 +59,8 @@ PlaybackPrefs::~PlaybackPrefs() void PlaybackPrefs::create_objects() { + int xs5 = xS(5), xs10 = xS(10), xs30 = xS(30); + int ys5 = yS(5), ys30 = yS(30); int x, y, x2, y2; char string[BCTEXTLEN]; BC_WindowBase *window; @@ -91,50 +93,46 @@ SET_TRACE menu->add_item(new BC_MenuItem("131072")); menu->add_item(new BC_MenuItem("262144")); - y += menu->get_h() + 5; + y += menu->get_h() + ys5; x2 = x; add_subwindow(title1 = new BC_Title(x2, y, _("Audio offset (sec):"))); - x2 += title1->get_w() + 5; + x2 += title1->get_w() + xs5; audio_offset = new PlaybackAudioOffset(pwindow, this, x2, y); audio_offset->create_objects(); - y += audio_offset->get_h() + 5; + y += audio_offset->get_h() + ys5; SET_TRACE add_subwindow(new PlaybackViewFollows(pwindow, pwindow->thread->edl->session->view_follows_playback, y)); - y += 30; + y += ys30; add_subwindow(new PlaybackSoftwareTimer(pwindow, pwindow->thread->edl->session->playback_software_position, y)); - y += 30; + y += ys30; add_subwindow(new PlaybackRealTime(pwindow, pwindow->thread->edl->session->real_time_playback, y)); - y += 30; + y += ys30; PlaybackMap51_2 *map51_2 = new PlaybackMap51_2(pwindow, this, playback_config->aconfig->map51_2, y); add_subwindow(map51_2); - x2 = map51_2->get_x() + map51_2->get_w() + 15; + x2 = map51_2->get_x() + map51_2->get_w() + xS(15); y2 = y + BC_TextBox::calculate_h(this,MEDIUMFONT,1,1) - get_text_height(MEDIUMFONT); add_subwindow(title2 = new BC_Title(x2, y2, _("Gain:"))); - x2 += title2->get_w() + 8; + x2 += title2->get_w() + xS(8); play_gain = new PlaybackGain(x2, y, pwindow, this); play_gain->create_objects(); - y += 40; + y += yS(40); add_subwindow(new BC_Title(x, y, _("Audio Driver:"))); - audio_device = new ADevicePrefs(x + 100, y, pwindow, + audio_device = new ADevicePrefs(x + xS(100), y, pwindow, this, playback_config->aconfig, 0, MODEPLAY); audio_device->initialize(0); - SET_TRACE - - - // Video - y += audio_device->get_h(0) + margin; + y += audio_device->get_h(0) + margin; SET_TRACE add_subwindow(new BC_Bar(x, y, get_w() - x * 2)); - y += 5; + y += ys5; SET_TRACE add_subwindow(title1 = new BC_Title(x, y, _("Video Out"), LARGEFONT)); @@ -142,7 +140,7 @@ SET_TRACE SET_TRACE add_subwindow(window = new VideoEveryFrame(pwindow, this, x, y)); - int x1 = x + window->get_w() + 30; + int x1 = x + window->get_w() + xs30; const char *txt = _("Framerate achieved:"); int y1 = y + (window->get_h() - BC_Title::calculate_h(this, txt)) / 2; add_subwindow(title1 = new BC_Title(x1, y1, txt)); @@ -152,17 +150,17 @@ SET_TRACE y += window->get_h() + 2*margin; // add_subwindow(asynchronous = new VideoAsynchronous(pwindow, x, y)); -// y += asynchronous->get_h() + 10; +// y += asynchronous->get_h() + ys10; SET_TRACE - add_subwindow(title1 = new BC_Title(x, y, _("Scaling equation: Enlarge / Reduce "))); + add_subwindow(title1 = new BC_Title(x, y, _("Scaling equation: Enlarge / Reduce "))); VScalingEquation *vscaling_equation = - new VScalingEquation(x + title1->get_w() + 65, y, + new VScalingEquation(x + title1->get_w() + xS(65), y, &pwindow->thread->edl->session->interpolation_type); add_subwindow(vscaling_equation); vscaling_equation->create_objects(); SET_TRACE - y += 35; + y += yS(35); add_subwindow(title1 = new BC_Title(x, y, _("DVD Subtitle to display:"))); PlaybackSubtitleNumber *subtitle_number; @@ -170,7 +168,7 @@ SET_TRACE subtitle_number = new PlaybackSubtitleNumber(x1, y, pwindow, this); subtitle_number->create_objects(); - x2 = x + title1->get_w() + 10 + subtitle_number->get_w() + 85; + x2 = x + title1->get_w() + xs10 + subtitle_number->get_w() + xS(85); PlaybackSubtitle *subtitle_toggle; x1 += subtitle_number->get_w() + margin; add_subwindow(subtitle_toggle = new PlaybackSubtitle(x2, y, pwindow, this)); @@ -183,17 +181,17 @@ SET_TRACE add_subwindow(title1=new BC_Title(x2, y2, _("TOC Program No:"), MEDIUMFONT)); PlaybackProgramNumber *program_number; program_number = new PlaybackProgramNumber( - x2 + title1->get_w() + 10, y2, pwindow, this); + x2 + title1->get_w() + xs10, y2, pwindow, this); program_number->create_objects(); add_subwindow(interpolate_raw = new PlaybackInterpolateRaw( x, y, pwindow, this)); y += interpolate_raw->get_h() + margin; - add_subwindow(white_balance_raw = new PlaybackWhiteBalanceRaw(x, y, + add_subwindow(white_balance_raw = new PlaybackWhiteBalanceRaw(x, y, pwindow, this)); - if(!pwindow->thread->edl->session->interpolate_raw) - white_balance_raw->disable(); + if(!pwindow->thread->edl->session->interpolate_raw) + white_balance_raw->disable(); y += white_balance_raw->get_h() + margin; add_subwindow(vdevice_title = new BC_Title(x, y, _("Video Driver:"))); @@ -218,7 +216,7 @@ int PlaybackPrefs::draw_framerate(int flush) PlaybackAudioOffset::PlaybackAudioOffset(PreferencesWindow *pwindow, PlaybackPrefs *playback, int x, int y) : BC_TumbleTextBox(playback, playback->playback_config->aconfig->audio_offset, - -10.0, 10.0, x, y, 100) + -10.0, 10.0, x, y, xS(100)) { this->pwindow = pwindow; this->playback = playback; @@ -237,7 +235,7 @@ int PlaybackAudioOffset::handle_event() PlaybackModuleFragment::PlaybackModuleFragment(int x, int y, PreferencesWindow *pwindow, PlaybackPrefs *playback, char *text) - : BC_PopupMenu(x, y, 100, text, 1) + : BC_PopupMenu(x, y, xS(100), text, 1) { this->pwindow = pwindow; this->playback = playback; @@ -251,7 +249,7 @@ int PlaybackModuleFragment::handle_event() PlaybackViewFollows::PlaybackViewFollows(PreferencesWindow *pwindow, int value, int y) - : BC_CheckBox(10, y, value, _("View follows playback")) + : BC_CheckBox(xS(10), y, value, _("View follows playback")) { this->pwindow = pwindow; } @@ -264,7 +262,7 @@ int PlaybackViewFollows::handle_event() PlaybackSoftwareTimer::PlaybackSoftwareTimer(PreferencesWindow *pwindow, int value, int y) - : BC_CheckBox(10, y, value, _("Disable hardware synchronization")) + : BC_CheckBox(xS(10), y, value, _("Disable hardware synchronization")) { this->pwindow = pwindow; } @@ -277,7 +275,7 @@ int PlaybackSoftwareTimer::handle_event() PlaybackRealTime::PlaybackRealTime(PreferencesWindow *pwindow, int value, int y) - : BC_CheckBox(10, y, value, _("Audio playback in real time priority (root only)")) + : BC_CheckBox(xS(10), y, value, _("Audio playback in real time priority (root only)")) { this->pwindow = pwindow; } @@ -291,7 +289,7 @@ int PlaybackRealTime::handle_event() PlaybackMap51_2::PlaybackMap51_2(PreferencesWindow *pwindow, PlaybackPrefs *playback_prefs, int value, int y) - : BC_CheckBox(10, y, value, _("Map 5.1->2")) + : BC_CheckBox(xS(10), y, value, _("Map 5.1->2")) { this->pwindow = pwindow; this->playback_prefs = playback_prefs; @@ -306,9 +304,7 @@ int PlaybackMap51_2::handle_event() PlaybackInterpolateRaw::PlaybackInterpolateRaw( int x, int y, PreferencesWindow *pwindow, PlaybackPrefs *playback) - : BC_CheckBox(x, - y, - pwindow->thread->edl->session->interpolate_raw, + : BC_CheckBox(x, y, pwindow->thread->edl->session->interpolate_raw, _("Interpolate CR2 images")) { this->pwindow = pwindow; @@ -331,8 +327,7 @@ int PlaybackInterpolateRaw::handle_event() PlaybackWhiteBalanceRaw::PlaybackWhiteBalanceRaw( int x, int y, PreferencesWindow *pwindow, PlaybackPrefs *playback) - : BC_CheckBox(x, - y, + : BC_CheckBox(x, y, pwindow->thread->edl->session->interpolate_raw && pwindow->thread->edl->session->white_balance_raw, _("White balance CR2 images")) @@ -358,7 +353,7 @@ int PlaybackWhiteBalanceRaw::handle_event() // if(!pwindow->thread->edl->session->video_every_frame) // disable(); // } -// +// // int VideoAsynchronous::handle_event() // { // pwindow->thread->edl->session->video_asynchronous = get_value(); @@ -409,7 +404,7 @@ int PlaybackSubtitle::handle_event() PlaybackSubtitleNumber::PlaybackSubtitleNumber(int x, int y, PreferencesWindow *pwindow, PlaybackPrefs *playback) : BC_TumbleTextBox(playback, pwindow->thread->edl->session->subtitle_number, - 0, 31, x, y, 50) + 0, 31, x, y, xS(50)) { this->pwindow = pwindow; this->playback = playback; @@ -443,7 +438,7 @@ PlaybackProgramNumber::PlaybackProgramNumber(int x, int y, PreferencesWindow *pwindow, PlaybackPrefs *playback) : BC_TumbleTextBox(playback, pwindow->thread->edl->session->program_no, - 0, 31, x, y, 50) + 0, 31, x, y, xS(50)) { this->pwindow = pwindow; this->playback = playback; @@ -459,7 +454,7 @@ PlaybackGain::PlaybackGain(int x, int y, PreferencesWindow *pwindow, PlaybackPrefs *playback) : BC_TumbleTextBox(playback, pwindow->thread->edl->session->playback_config->aconfig->play_gain, - 0.0001f, 10000.0f, x, y, 72) + 0.0001f, 10000.0f, x, y, xS(72)) { this->pwindow = pwindow; this->set_increment(0.1); diff --git a/cinelerra-5.1/cinelerra/pluginaclientlad.C b/cinelerra-5.1/cinelerra/pluginaclientlad.C index 15ff05ed..f6ee07ca 100644 --- a/cinelerra-5.1/cinelerra/pluginaclientlad.C +++ b/cinelerra-5.1/cinelerra/pluginaclientlad.C @@ -179,11 +179,7 @@ int PluginACLientToggle::handle_event() PluginACLientILinear::PluginACLientILinear(PluginAClientLAD *plugin, - int x, - int y, - LADSPA_Data *output, - int min, - int max) + int x, int y, LADSPA_Data *output, int min, int max) : BC_IPot(x, y, (int)(*output), min, max) { this->plugin = plugin; @@ -199,11 +195,7 @@ int PluginACLientILinear::handle_event() PluginACLientFLinear::PluginACLientFLinear(PluginAClientLAD *plugin, - int x, - int y, - LADSPA_Data *output, - float min, - float max) + int x, int y, LADSPA_Data *output, float min, float max) : BC_FPot(x, y, *output, min, max) { this->plugin = plugin; @@ -242,8 +234,8 @@ int PluginACLientFreq::handle_event() PluginAClientWindow::PluginAClientWindow(PluginAClientLAD *plugin) - : PluginClientWindow(plugin, 500, plugin->config.total_ports * 30 + 60, - 500, plugin->config.total_ports * 30 + 60, 0) + : PluginClientWindow(plugin, xS(500), plugin->config.total_ports * yS(30) + yS(60), + xS(500), plugin->config.total_ports * yS(30) + yS(60), 0) { this->plugin = plugin; } @@ -258,10 +250,8 @@ void PluginAClientWindow::create_objects() PluginServer *server = plugin->server; char string[BCTEXTLEN]; int current_port = 0; - int x = 10; - int y = 10; - int x2 = 300; - int x3 = 335; + int x = xS(10), y = yS(10); + int x2 = xS(300), x3 = xS(335); int title_vmargin = 5; int max_w = 0; const LADSPA_Descriptor *lad_desc = server->lad_descriptor; @@ -274,8 +264,8 @@ void PluginAClientWindow::create_objects() if(w > max_w) max_w = w; } - x2 = max_w + 20; - x3 = max_w + 55; + x2 = max_w + xS(20); + x3 = max_w + xS(55); for(int i = 0; i < port_count; i++) { if( !LADSPA_IS_PORT_INPUT(port_desc[i]) ) continue; if( !LADSPA_IS_PORT_CONTROL(port_desc[i]) ) continue; @@ -331,14 +321,14 @@ void PluginAClientWindow::create_objects() break; } } current_port++; - y += 30; + y += yS(30); //printf("PluginAClientWindow::create_objects 2\n"); } - y += 10; + y += yS(10); sprintf(string, _("Author: %s"), lad_desc->Maker); add_subwindow(new BC_Title(x, y, string)); - y += 20; + y += yS(20); sprintf(string, _("License: %s"), lad_desc->Copyright); add_subwindow(new BC_Title(x, y, string)); show_window(1); diff --git a/cinelerra-5.1/cinelerra/pluginclient.C b/cinelerra-5.1/cinelerra/pluginclient.C index 726bd00f..5d7018c1 100644 --- a/cinelerra-5.1/cinelerra/pluginclient.C +++ b/cinelerra-5.1/cinelerra/pluginclient.C @@ -146,21 +146,15 @@ PluginClientFrame::~PluginClientFrame() PluginClientWindow::PluginClientWindow(PluginClient *client, int w, int h, int min_w, int min_h, int allow_resize) : BC_Window(client->gui_string, - client->window_x /* - w / 2 */, - client->window_y /* - h / 2 */, - (int)(w*get_resources()->font_scale+0.5), (int)(h*get_resources()->font_scale+0.5), - (int)(min_w*get_resources()->font_scale+0.5), (int)(min_h*get_resources()->font_scale+0.5), - allow_resize, 0, 1) + client->window_x /* - w / 2 */, client->window_y /* - h / 2 */, + w, h, min_w, min_h, allow_resize, 0, 1) { this->client = client; } PluginClientWindow::PluginClientWindow(const char *title, int x, int y, int w, int h, int min_w, int min_h, int allow_resize) - : BC_Window(title, x, y, - (int)(w*get_resources()->font_scale+0.5), (int)(h*get_resources()->font_scale+0.5), - (int)(min_w*get_resources()->font_scale+0.5), (int)(min_h*get_resources()->font_scale+0.5), - allow_resize, 0, 1) + : BC_Window(title, x, y, w, h, min_w, min_h, allow_resize, 0, 1) { this->client = 0; } diff --git a/cinelerra-5.1/cinelerra/plugindialog.C b/cinelerra-5.1/cinelerra/plugindialog.C index 006cf40e..8e08d2f1 100644 --- a/cinelerra-5.1/cinelerra/plugindialog.C +++ b/cinelerra-5.1/cinelerra/plugindialog.C @@ -128,16 +128,10 @@ PluginDialog::PluginDialog(MWindow *mwindow, const char *window_title, int x, int y) - : BC_Window(window_title, - x, - y, + : BC_Window(window_title, x, y, mwindow->session->plugindialog_w, mwindow->session->plugindialog_h, - 510, - 415, - 1, - 0, - 1) + xS(510), yS(415), 1, 0, 1) { this->mwindow = mwindow; this->thread = thread; @@ -165,6 +159,8 @@ PluginDialog::~PluginDialog() void PluginDialog::create_objects() { + int xs10 = xS(10); + int ys10 = yS(10), ys20 = yS(20); // int use_default = 1; mwindow->theme->get_plugindialog_sizes(); lock_window("PluginDialog::create_objects"); @@ -204,18 +200,14 @@ void PluginDialog::create_objects() module_data.append(new BC_ListBoxItem(track->title)); } - - - - // Create widgets add_subwindow(standalone_title = new BC_Title(mwindow->theme->plugindialog_new_x, - mwindow->theme->plugindialog_new_y - 20, + mwindow->theme->plugindialog_new_y - ys20, _("Plugins:"))); int x1 = mwindow->theme->plugindialog_new_x, y1 = mwindow->theme->plugindialog_new_y; int w1 = mwindow->theme->plugindialog_new_w, h1 = mwindow->theme->plugindialog_new_h; add_subwindow(search_text = new PluginDialogSearchText(this, x1, y1, w1)); - int dy = search_text->get_h() + 10; + int dy = search_text->get_h() + ys10; y1 += dy; h1 -= dy; load_plugin_list(0); @@ -235,7 +227,7 @@ void PluginDialog::create_objects() // add_subwindow(shared_title = new BC_Title(mwindow->theme->plugindialog_shared_x, - mwindow->theme->plugindialog_shared_y - 20, + mwindow->theme->plugindialog_shared_y - ys20, _("Shared effects:"))); add_subwindow(shared_list = new PluginDialogShared(this, &shared_data, @@ -256,7 +248,7 @@ void PluginDialog::create_objects() // add_subwindow(module_title = new BC_Title(mwindow->theme->plugindialog_module_x, - mwindow->theme->plugindialog_module_y - 20, + mwindow->theme->plugindialog_module_y - ys20, _("Shared tracks:"))); add_subwindow(module_list = new PluginDialogModules(this, &module_data, @@ -286,13 +278,10 @@ void PluginDialog::create_objects() if(thread->is_mainmenu) add_subwindow(single_standalone = new PluginDialogSingle(this, - mwindow->theme->plugindialog_new_x + BC_OKButton::calculate_w() + 10, - mwindow->theme->plugindialog_new_y + - mwindow->theme->plugindialog_new_h + + mwindow->theme->plugindialog_new_x + BC_OKButton::calculate_w() + xs10, + mwindow->theme->plugindialog_new_y + mwindow->theme->plugindialog_new_h + get_text_height(MEDIUMFONT))); - - add_subwindow(ok_btn = new BC_OKButton(this)); add_subwindow(can_btn = new BC_CancelButton(this)); int aw = PluginDialogApply::calculate_w(this, _("Apply")); @@ -310,17 +299,17 @@ void PluginDialog::create_objects() int PluginDialog::resize_event(int w, int h) { + int ys10 = yS(10), ys20 = yS(20); mwindow->session->plugindialog_w = w; mwindow->session->plugindialog_h = h; mwindow->theme->get_plugindialog_sizes(); - standalone_title->reposition_window(mwindow->theme->plugindialog_new_x, - mwindow->theme->plugindialog_new_y - 20); + mwindow->theme->plugindialog_new_y - ys20); int x1 = mwindow->theme->plugindialog_new_x, y1 = mwindow->theme->plugindialog_new_y; int w1 = mwindow->theme->plugindialog_new_w, h1 = mwindow->theme->plugindialog_new_h; search_text->reposition_window(x1, y1, w1); - int dy = search_text->get_h() + 10; + int dy = search_text->get_h() + ys10; y1 += dy; h1 -= dy; standalone_list->reposition_window(x1, y1, w1, h1); @@ -332,7 +321,7 @@ int PluginDialog::resize_event(int w, int h) // mwindow->theme->plugindialog_newattach_y); shared_title->reposition_window(mwindow->theme->plugindialog_shared_x, - mwindow->theme->plugindialog_shared_y - 20); + mwindow->theme->plugindialog_shared_y - ys20); shared_list->reposition_window(mwindow->theme->plugindialog_shared_x, mwindow->theme->plugindialog_shared_y, mwindow->theme->plugindialog_shared_w, @@ -349,7 +338,7 @@ int PluginDialog::resize_event(int w, int h) module_title->reposition_window(mwindow->theme->plugindialog_module_x, - mwindow->theme->plugindialog_module_y - 20); + mwindow->theme->plugindialog_module_y - ys20); module_list->reposition_window(mwindow->theme->plugindialog_module_x, mwindow->theme->plugindialog_module_y, mwindow->theme->plugindialog_module_w, @@ -364,7 +353,7 @@ int PluginDialog::resize_event(int w, int h) if(single_standalone) single_standalone->reposition_window( - mwindow->theme->plugindialog_new_x + BC_OKButton::calculate_w() + 10, + mwindow->theme->plugindialog_new_x + BC_OKButton::calculate_w() + ys10, mwindow->theme->plugindialog_new_y + mwindow->theme->plugindialog_new_h + get_text_height(MEDIUMFONT)); @@ -500,7 +489,7 @@ int PluginDialogApply::handle_event() // // PluginDialogTextBox::PluginDialogTextBox(PluginDialog *dialog, char *text, int x, int y) -// : BC_TextBox(x, y, 200, 1, text) +// : BC_TextBox(x, y, xS(200), 1, text) // { // this->dialog = dialog; // } @@ -527,16 +516,6 @@ int PluginDialogApply::handle_event() - - - - - - - - - - PluginDialogNew::PluginDialogNew(PluginDialog *dialog, ArrayList *standalone_data, int x, int y, int w, int h) @@ -599,26 +578,10 @@ int PluginDialogNew::selection_changed() // } - - - - - - - - PluginDialogShared::PluginDialogShared(PluginDialog *dialog, ArrayList *shared_data, - int x, - int y, - int w, - int h) - : BC_ListBox(x, - y, - w, - h, - LISTBOX_TEXT, - shared_data) + int x, int y, int w, int h) + : BC_ListBox(x, y, w, h, LISTBOX_TEXT, shared_data) { this->dialog = dialog; } @@ -690,16 +653,8 @@ int PluginDialogShared::selection_changed() PluginDialogModules::PluginDialogModules(PluginDialog *dialog, ArrayList *module_data, - int x, - int y, - int w, - int h) - : BC_ListBox(x, - y, - w, - h, - LISTBOX_TEXT, - module_data) + int x, int y, int w, int h) + : BC_ListBox(x, y, w, h, LISTBOX_TEXT, module_data) { this->dialog = dialog; } @@ -754,9 +709,7 @@ int PluginDialogSearchText::handle_event() } PluginDialogSingle::PluginDialogSingle(PluginDialog *dialog, int x, int y) - : BC_CheckBox(x, - y, - dialog->thread->single_standalone, + : BC_CheckBox(x, y, dialog->thread->single_standalone, _("Attach single standalone and share others")) { this->dialog = dialog; @@ -802,15 +755,3 @@ int PluginDialogSingle::handle_event() // } // - - - - - - - - - - - - diff --git a/cinelerra-5.1/cinelerra/pluginfclient.C b/cinelerra-5.1/cinelerra/pluginfclient.C index fb0329df..03ad7e25 100644 --- a/cinelerra-5.1/cinelerra/pluginfclient.C +++ b/cinelerra-5.1/cinelerra/pluginfclient.C @@ -285,7 +285,7 @@ int PluginFClientPot::handle_event() } PluginFClientSlider::PluginFClientSlider(PluginFClientWindow *fwin, int x, int y) - : BC_FSlider(x, y, 0, fwin->get_w()-x-20, fwin->get_w()-x-20, 0.f, 0.f, 0.f) + : BC_FSlider(x, y, 0, fwin->get_w()-x-xS(20), fwin->get_w()-x-xS(20), 0.f, 0.f, 0.f) { this->fwin = fwin; } @@ -522,7 +522,7 @@ const char *PluginFClient_Opt::tip() int PluginFClient_OptPanel::update() { const char *cols[] = { "option", "value", }; - const int col1_w = 150; + const int col1_w = xS(150); int wids[] = { col1_w, get_w()-col1_w }; BC_ListBox::update(&items[0], &cols[0], &wids[0], sizeof(items)/sizeof(items[0]), get_xposition(), get_yposition(), get_highlighted_item()); @@ -531,7 +531,7 @@ int PluginFClient_OptPanel::update() PluginFClientWindow::PluginFClientWindow(PluginFClient *ffmpeg) - : PluginClientWindow(ffmpeg->plugin, 600, 300, 600, 300, 1) + : PluginClientWindow(ffmpeg->plugin, xS(600), yS(300), xS(600), yS(300), 1) { this->ffmpeg = ffmpeg; this->selected = 0; @@ -543,41 +543,42 @@ PluginFClientWindow::~PluginFClientWindow() void PluginFClientWindow::create_objects() { + int xs8 = xS(8), xs10 = xS(10), ys10 = yS(10); char string[BCTEXTLEN]; BC_Title *title; - int x = 10, y = 10; + int x = xs10, y = ys10; const char *descr = ffmpeg->config.ffilt->description(); if( !descr ) descr = ffmpeg->config.ffilt->filter_name(); add_subwindow(title = new BC_Title(x, y, descr)); - y += title->get_h() + 10; + y += title->get_h() + ys10; int x0 = x; sprintf(string, _("Type: ")); add_subwindow(title = new BC_Title(x0, y, string)); - x0 += title->get_w() + 8; + x0 += title->get_w() + xs8; add_subwindow(type = new BC_Title(x0, y, (char *)"")); - x0 = x + 150; + x0 = x + xS(150); sprintf(string, _("Range: ")); add_subwindow(title = new BC_Title(x0, y, string)); - x0 += title->get_w() + 8; + x0 += title->get_w() + xs8; add_subwindow(range = new BC_Title(x0, y, (char *)"")); - int x1 = get_w() - BC_GenericButton::calculate_w(this, _("Reset")) - 8; + int x1 = get_w() - BC_GenericButton::calculate_w(this, _("Reset")) - xs8; add_subwindow(reset = new PluginFClientReset(this, x1, y)); - y += title->get_h() + 10; + y += title->get_h() + ys10; x0 = x; - add_subwindow(units = new PluginFClientUnits(this, x0, y, 120)); - x0 += units->get_w() + 8; - x1 = get_w() - BC_GenericButton::calculate_w(this, _("Apply")) - 8; + add_subwindow(units = new PluginFClientUnits(this, x0, y, xS(120))); + x0 += units->get_w() + xs8; + x1 = get_w() - BC_GenericButton::calculate_w(this, _("Apply")) - xs8; add_subwindow(apply = new PluginFClientApply(this, x1, y)); - add_subwindow(text = new PluginFClientText(this, x0, y, x1-x0 - 8)); - y += title->get_h() + 10; + add_subwindow(text = new PluginFClientText(this, x0, y, x1-x0 - xs8)); + y += title->get_h() + ys10; add_subwindow(pot = new PluginFClientPot(this, x, y)); - x1 = x + pot->get_w() + 10; - add_subwindow(slider = new PluginFClientSlider(this, x1, y+10)); - y += pot->get_h() + 10; + x1 = x + pot->get_w() + xs10; + add_subwindow(slider = new PluginFClientSlider(this, x1, y+ys10)); + y += pot->get_h() + ys10; panel_x = x; panel_y = y; - panel_w = get_w()-10 - panel_x; - panel_h = get_h()-10 - panel_y; + panel_w = get_w()-xs10 - panel_x; + panel_h = get_h()-ys10 - panel_y; panel = new PluginFClient_OptPanel(this, panel_x, panel_y, panel_w, panel_h); add_subwindow(panel); panel->create_objects(); @@ -593,21 +594,22 @@ void PluginFClientWindow::draw() int PluginFClientWindow::resize_event(int w, int h) { - int x = get_w() - BC_GenericButton::calculate_w(this, _("Reset")) - 8; + int xs8 = xS(8), xs10 = xS(10), ys10 = yS(10); + int x = get_w() - BC_GenericButton::calculate_w(this, _("Reset")) - xs8; int y = reset->get_y(); reset->reposition_window(x, y); - int x1 = get_w() - BC_GenericButton::calculate_w(this, _("Apply")) - 8; + int x1 = get_w() - BC_GenericButton::calculate_w(this, _("Apply")) - xs8; int y1 = units->get_y(); apply->reposition_window(x1, y1); - int x0 = units->get_x() + units->get_w() + 8; + int x0 = units->get_x() + units->get_w() + xs8; int y0 = units->get_y(); - text->reposition_window(x0,y0, x1-x0-8); - x1 = pot->get_x() + pot->get_w() + 10; - int w1 = w - slider->get_x() - 20; + text->reposition_window(x0,y0, x1-x0-xs8); + x1 = pot->get_x() + pot->get_w() + xs10; + int w1 = w - slider->get_x() - xS(20); slider->set_pointer_motion_range(w1); slider->reposition_window(x1, slider->get_y(), w1, slider->get_h()); - panel_w = get_w()-10 - panel_x; - panel_h = get_h()-10 - panel_y; + panel_w = get_w()-xs10 - panel_x; + panel_h = get_h()-ys10 - panel_y; panel->reposition_window(panel_x,panel_y, panel_w, panel_h); return 1; } diff --git a/cinelerra-5.1/cinelerra/pluginlv2gui.C b/cinelerra-5.1/cinelerra/pluginlv2gui.C index cbd5b67f..05696836 100644 --- a/cinelerra-5.1/cinelerra/pluginlv2gui.C +++ b/cinelerra-5.1/cinelerra/pluginlv2gui.C @@ -151,7 +151,7 @@ void PluginLV2Client_OptPanel::update() vals.append(opt->item_value); } const char *cols[] = { "option", "value", }; - const int col1_w = 150; + const int col1_w = xS(150); int wids[] = { col1_w, get_w()-col1_w }; BC_ListBox::update(&items[0], &cols[0], &wids[0], sizeof(items)/sizeof(items[0]), get_xposition(), get_yposition(), get_highlighted_item()); @@ -174,7 +174,7 @@ int PluginLV2ClientPot::handle_event() } PluginLV2ClientSlider::PluginLV2ClientSlider(PluginLV2ClientWindow *gui, int x, int y) - : BC_FSlider(x, y, 0, gui->get_w()-x-20, gui->get_w()-x-20, 0.f, 0.f, 0.f) + : BC_FSlider(x, y, 0, gui->get_w()-x-xS(20), gui->get_w()-x-xS(20), 0.f, 0.f, 0.f) { this->gui = gui; } @@ -190,7 +190,7 @@ int PluginLV2ClientSlider::handle_event() } PluginLV2ClientWindow::PluginLV2ClientWindow(PluginLV2Client *client) - : PluginClientWindow(client, 500, 300, 500, 300, 1) + : PluginClientWindow(client, xS(500), yS(300), xS(500), yS(300), 1) { this->client = client; selected = 0; @@ -211,31 +211,32 @@ PluginLV2ClientWindow::~PluginLV2ClientWindow() void PluginLV2ClientWindow::create_objects() { BC_Title *title; - int x = 10, y = 10, x1; + int xs8 = xS(8), xs10 = xS(10), ys10 = yS(10); + int x = xs10, y = ys10, x1; add_subwindow(title = new BC_Title(x, y, client->title)); - x1 = get_w() - BC_GenericButton::calculate_w(this, _("UI")) - 8; + x1 = get_w() - BC_GenericButton::calculate_w(this, _("UI")) - xs8; add_subwindow(client_ui = new PluginLV2ClientUI(this, x1, y)); - y += title->get_h() + 10; + y += title->get_h() + ys10; add_subwindow(varbl = new BC_Title(x, y, "")); - add_subwindow(range = new BC_Title(x+160, y, "")); - x1 = get_w() - BC_GenericButton::calculate_w(this, _("Reset")) - 8; + add_subwindow(range = new BC_Title(x+xS(160), y, "")); + x1 = get_w() - BC_GenericButton::calculate_w(this, _("Reset")) - xs8; add_subwindow(reset = new PluginLV2ClientReset(this, x1, y)); - y += title->get_h() + 10; - x1 = get_w() - BC_GenericButton::calculate_w(this, _("Apply")) - 8; + y += title->get_h() + ys10; + x1 = get_w() - BC_GenericButton::calculate_w(this, _("Apply")) - xs8; add_subwindow(apply = new PluginLV2ClientApply(this, x1, y)); - add_subwindow(text = new PluginLV2ClientText(this, x, y, x1-x - 8)); - y += title->get_h() + 10; + add_subwindow(text = new PluginLV2ClientText(this, x, y, x1-x - xs8)); + y += title->get_h() + ys10; add_subwindow(pot = new PluginLV2ClientPot(this, x, y)); - x1 = x + pot->get_w() + 10; - add_subwindow(slider = new PluginLV2ClientSlider(this, x1, y+10)); - y += pot->get_h() + 10; + x1 = x + pot->get_w() + xs10; + add_subwindow(slider = new PluginLV2ClientSlider(this, x1, y+ys10)); + y += pot->get_h() + ys10; client->load_configuration(); client->config.update(); int panel_x = x, panel_y = y; - int panel_w = get_w()-10 - panel_x; - int panel_h = get_h()-10 - panel_y; + int panel_w = get_w()-xs10 - panel_x; + int panel_h = get_h()-ys10 - panel_y; panel = new PluginLV2Client_OptPanel(this, panel_x, panel_y, panel_w, panel_h); add_subwindow(panel); panel->update(); @@ -251,19 +252,20 @@ void PluginLV2ClientWindow::create_objects() int PluginLV2ClientWindow::resize_event(int w, int h) { int x1; - x1 = w - client_ui->get_w() - 8; + int xs8 = xS(8), xs10 = xS(10), ys10 = yS(10); + x1 = w - client_ui->get_w() - xs8; client_ui->reposition_window(x1, client_ui->get_y()); - x1 = w - reset->get_w() - 8; + x1 = w - reset->get_w() - xs8; reset->reposition_window(x1, reset->get_y()); - x1 = w - apply->get_w() - 8; + x1 = w - apply->get_w() - xs8; apply->reposition_window(x1, apply->get_y()); - text->reposition_window(text->get_x(), text->get_y(), x1-text->get_x() - 8); - x1 = pot->get_x() + pot->get_w() + 10; - int w1 = w - slider->get_x() - 20; + text->reposition_window(text->get_x(), text->get_y(), x1-text->get_x() - xs8); + x1 = pot->get_x() + pot->get_w() + xs10; + int w1 = w - slider->get_x() - xS(20); slider->set_pointer_motion_range(w1); slider->reposition_window(x1, slider->get_y(), w1, slider->get_h()); int panel_x = panel->get_x(), panel_y = panel->get_y(); - panel->reposition_window(panel_x, panel_y, w-10-panel_x, h-10-panel_y); + panel->reposition_window(panel_x, panel_y, w-xs10-panel_x, h-ys10-panel_y); return 1; } diff --git a/cinelerra-5.1/cinelerra/pluginprefs.C b/cinelerra-5.1/cinelerra/pluginprefs.C index 6e09c208..2a3f7878 100644 --- a/cinelerra-5.1/cinelerra/pluginprefs.C +++ b/cinelerra-5.1/cinelerra/pluginprefs.C @@ -46,7 +46,9 @@ PluginPrefs::~PluginPrefs() void PluginPrefs::create_objects() { char string[1024]; - int x = 5, y = 5; + int xs5 = xS(5), xs10 = xS(10), xs20 = xS(20), xs30 = xS(30); + int ys5 = yS(5), ys10 = yS(10), ys20 = yS(20), ys30 = yS(30); + int x = xs5, y = ys5; // add_border(get_resources()->get_bg_shadow1(), // get_resources()->get_bg_shadow2(), @@ -55,32 +57,24 @@ void PluginPrefs::create_objects() // get_resources()->get_bg_light1()); add_subwindow(new BC_Title(x, y, _("Plugin Set"), LARGEFONT, BLACK)); - y += 35; + y += ys35; add_subwindow(new BC_Title(x, y, _("Look for global plugins here"), MEDIUMFONT, BLACK)); - y += 20; - add_subwindow(ipathtext = new PluginGlobalPathText(x, y, pwindow, pwindow->thread->preferences->global_plugin_dir)); - add_subwindow(ipath = new BrowseButton(mwindow, - this, - ipathtext, - 215, - y, - pwindow->thread->preferences->global_plugin_dir, - _("Global Plugin Path"), - _("Select the directory for plugins"), + y += ys20; + add_subwindow(ipathtext = new PluginGlobalPathText(x, y, + pwindow, pwindow->thread->preferences->global_plugin_dir)); + add_subwindow(ipath = new BrowseButton(mwindow, this, ipathtext, + xS(215), y, pwindow->thread->preferences->global_plugin_dir, + _("Global Plugin Path"), _("Select the directory for plugins"), 1)); y += 35; add_subwindow(new BC_Title(x, y, _("Look for personal plugins here"), MEDIUMFONT, BLACK)); y += 20; - add_subwindow(lpathtext = new PluginLocalPathText(x, y, pwindow, pwindow->thread->preferences->local_plugin_dir)); - add_subwindow(lpath = new BrowseButton(mwindow, - this, - lpathtext, - 215, - y, - pwindow->thread->preferences->local_plugin_dir, - _("Personal Plugin Path"), - _("Select the directory for plugins"), + add_subwindow(lpathtext = new PluginLocalPathText(x, y, + pwindow, pwindow->thread->preferences->local_plugin_dir)); + add_subwindow(lpath = new BrowseButton(mwindow, this, lpathtext, + xS(215), y, pwindow->thread->preferences->local_plugin_dir, + _("Personal Plugin Path"), _("Select the directory for plugins"), 1)); } @@ -89,7 +83,7 @@ void PluginPrefs::create_objects() PluginGlobalPathText::PluginGlobalPathText(int x, int y, PreferencesWindow *pwindow, char *text) - : BC_TextBox(x, y, 200, 1, text) + : BC_TextBox(x, y, xS(200), 1, text) { this->pwindow = pwindow; } @@ -106,7 +100,7 @@ int PluginGlobalPathText::handle_event() PluginLocalPathText::PluginLocalPathText(int x, int y, PreferencesWindow *pwindow, char *text) - : BC_TextBox(x, y, 200, 1, text) + : BC_TextBox(x, y, xs(200), 1, text) { this->pwindow = pwindow; } diff --git a/cinelerra-5.1/cinelerra/preferencesthread.C b/cinelerra-5.1/cinelerra/preferencesthread.C index 73d8d5d4..2e908926 100644 --- a/cinelerra-5.1/cinelerra/preferencesthread.C +++ b/cinelerra-5.1/cinelerra/preferencesthread.C @@ -64,8 +64,8 @@ -#define WIDTH 860 -#define HEIGHT 700 +#define WIDTH xS(860) +#define HEIGHT yS(700) PreferencesMenuitem::PreferencesMenuitem(MWindow *mwindow) @@ -125,7 +125,7 @@ BC_Window* PreferencesThread::new_gui() //int need_new_indexes = 0; rerender = 0; - mwindow->gui->lock_window("NewThread::new_gui"); + mwindow->gui->lock_window("NewThread::new_gui"); int scr_x = mwindow->gui->get_screen_x(0, -1); int scr_w = mwindow->gui->get_screen_w(0, -1); int scr_h = mwindow->gui->get_screen_h(0, -1); @@ -406,12 +406,6 @@ SET_TRACE } - - - - - - PreferencesWindow::PreferencesWindow(MWindow *mwindow, PreferencesThread *thread, int x, int y, int w, int h) : BC_Window(_(PROGRAM_NAME ": Preferences"), x,y, w,h,w,h, 1) @@ -586,15 +580,6 @@ int PreferencesWindow::set_current_dialog(int number) } - - - - - - - - - PreferencesButton::PreferencesButton(MWindow *mwindow, PreferencesThread *thread, int x, @@ -616,19 +601,11 @@ int PreferencesButton::handle_event() } - - - - - - - PreferencesDialog::PreferencesDialog(MWindow *mwindow, PreferencesWindow *pwindow) - : BC_SubWindow(10, - 40, - pwindow->get_w() - 20, - pwindow->get_h() - BC_GenericButton::calculate_h() - 10 - 40) + : BC_SubWindow(xS(10), yS(40), + pwindow->get_w() - xS(20), + pwindow->get_h() - BC_GenericButton::calculate_h() - yS(10 + 40)) { this->pwindow = pwindow; this->mwindow = mwindow; @@ -639,14 +616,12 @@ PreferencesDialog::~PreferencesDialog() { } -// ============================== category window - - +// ============================== category window PreferencesApply::PreferencesApply(MWindow *mwindow, PreferencesThread *thread) : BC_GenericButton(thread->window->get_w() / 2 - BC_GenericButton::calculate_w(thread->window, _("Apply")) / 2, - thread->window->get_h() - BC_GenericButton::calculate_h() - 10, + thread->window->get_h() - BC_GenericButton::calculate_h() - yS(10), _("Apply")) { this->mwindow = mwindow; @@ -660,16 +635,14 @@ int PreferencesApply::handle_event() } int PreferencesApply::resize_event(int w, int h) { - reposition_window(w/2 - get_w()/2, h-get_h()-10); + reposition_window(w/2 - get_w()/2, h-get_h()-yS(10)); return 1; } - - PreferencesOK::PreferencesOK(MWindow *mwindow, PreferencesThread *thread) - : BC_GenericButton(10, - thread->window->get_h() - BC_GenericButton::calculate_h() - 10, + : BC_GenericButton(xS(10), + thread->window->get_h() - BC_GenericButton::calculate_h() - yS(10), _("OK")) { this->mwindow = mwindow; @@ -691,16 +664,15 @@ int PreferencesOK::handle_event() } int PreferencesOK::resize_event(int w, int h) { - reposition_window(10, h-get_h()-10); + reposition_window(xS(10), h-get_h()-yS(10)); return 1; } - PreferencesCancel::PreferencesCancel(MWindow *mwindow, PreferencesThread *thread) - : BC_GenericButton(thread->window->get_w() - BC_GenericButton::calculate_w(thread->window, _("Cancel")) - 10, - thread->window->get_h() - BC_GenericButton::calculate_h() - 10, - _("Cancel")) + : BC_GenericButton(thread->window->get_w() - BC_GenericButton::calculate_w(thread->window, _("Cancel")) - xS(10), + thread->window->get_h() - BC_GenericButton::calculate_h() - yS(10), + _("Cancel")) { this->mwindow = mwindow; this->thread = thread; @@ -721,27 +693,16 @@ int PreferencesCancel::handle_event() } int PreferencesCancel::resize_event(int w, int h) { - reposition_window(w-get_w()-10, h-get_h()-10); + reposition_window(w-get_w()-xS(10), h-get_h()-yS(10)); return 1; } - - - - - - - - PreferencesCategory::PreferencesCategory(MWindow *mwindow, PreferencesThread *thread, int x, int y) : BC_PopupTextBox(thread->window, &thread->window->categories, thread->category_to_text(thread->current_dialog), - x, - y, - 200, - 150) + x, y, xS(200), yS(150)) { this->mwindow = mwindow; this->thread = thread; diff --git a/cinelerra-5.1/cinelerra/presetsgui.C.sav b/cinelerra-5.1/cinelerra/presetsgui.C.sav index b97621a8..48abf86f 100644 --- a/cinelerra-5.1/cinelerra/presetsgui.C.sav +++ b/cinelerra-5.1/cinelerra/presetsgui.C.sav @@ -415,15 +415,10 @@ PresetsWindow::PresetsWindow(MWindow *mwindow, int y, char *title_string) : BC_Window(title_string, - x, - y, + x, y, mwindow->session->presetdialog_w, mwindow->session->presetdialog_h, - 320, - 240, - 1, - 0, - 1) + xS(320), yS(240), 1, 0, 1) { this->mwindow = mwindow; this->thread = thread; diff --git a/cinelerra-5.1/cinelerra/presetsgui.C.sav1 b/cinelerra-5.1/cinelerra/presetsgui.C.sav1 index b3ad7ed8..43c4c39e 100644 --- a/cinelerra-5.1/cinelerra/presetsgui.C.sav1 +++ b/cinelerra-5.1/cinelerra/presetsgui.C.sav1 @@ -2,21 +2,21 @@ /* * CINELERRA * Copyright (C) 2008 Adam Williams - * + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * + * */ #if 0 @@ -102,14 +102,14 @@ void PresetsThread::start_window(Plugin *plugin) BC_Window* PresetsThread::new_gui() { mwindow->gui->lock_window("PresetsThread::new_gui"); - int x = mwindow->gui->get_abs_cursor_x(0) - + int x = mwindow->gui->get_abs_cursor_x(0) - mwindow->session->plugindialog_w / 2; - int y = mwindow->gui->get_abs_cursor_y(0) - + int y = mwindow->gui->get_abs_cursor_y(0) - mwindow->session->plugindialog_h / 2; - PresetsWindow *window = new PresetsWindow(mwindow, - this, - x, + PresetsWindow *window = new PresetsWindow(mwindow, + this, + x, y, window_title); @@ -150,7 +150,7 @@ void PresetsThread::save_preset(char *title) EDL *edl = mwindow->edl; Track *track = plugin->track; KeyFrame *keyframe = plugin->get_prev_keyframe( - track->to_units(edl->local_session->get_selectionstart(1), 0), + track->to_units(edl->local_session->get_selectionstart(1), 0), PLAY_FORWARD); // Send to database @@ -215,7 +215,7 @@ void PresetsThread::apply_preset(char *title) KeyFrame *keyframe = plugin->get_keyframe(); presets_db->load_preset(plugin_title, title, keyframe); mwindow->save_backup(); - mwindow->undo->update_undo_after(_("apply preset"), LOAD_AUTOMATION); + mwindow->undo->update_undo_after(_("apply preset"), LOAD_AUTOMATION); mwindow->update_plugin_guis(); mwindow->gui->canvas->draw_overlays(); @@ -235,11 +235,11 @@ PresetsList::PresetsList(PresetsThread *thread, PresetsWindow *window, int x, int y, - int w, + int w, int h) - : BC_ListBox(x, - y, - w, + : BC_ListBox(x, + y, + w, h, LISTBOX_TEXT, thread->data) @@ -275,10 +275,10 @@ PresetsText::PresetsText(PresetsThread *thread, int x, int y, int w) - : BC_TextBox(x, - y, - w, - 1, + : BC_TextBox(x, + y, + w, + 1, "") { this->thread = thread; @@ -382,7 +382,7 @@ int PresetsOK::keypress_event() if(get_keypress() == RETURN) { printf("PresetsOK::keypress_event %d\n", __LINE__); - if(thread->presets_db->preset_exists(thread->plugin_title, + if(thread->presets_db->preset_exists(thread->plugin_title, window->title_text->get_text())) { printf("PresetsOK::keypress_event %d\n", __LINE__); @@ -413,16 +413,11 @@ PresetsWindow::PresetsWindow(MWindow *mwindow, int x, int y, char *title_string) - : BC_Window(title_string, - x, - y, - mwindow->session->presetdialog_w, - mwindow->session->presetdialog_h, - 320, - 240, - 1, - 0, - 1) + : BC_Window(title_string, + x, y, + mwindow->session->presetdialog_w, + mwindow->session->presetdialog_h, + xS(320), yS(240), 1, 0, 1) { this->mwindow = mwindow; this->thread = thread; @@ -442,7 +437,7 @@ void PresetsWindow::create_objects() this, theme->presets_list_x, theme->presets_list_y, - theme->presets_list_w, + theme->presets_list_w, theme->presets_list_h)); add_subwindow(title2 = new BC_Title(theme->presets_text_x, theme->presets_text_y - BC_Title::calculate_h(this, "P") - theme->widget_border, @@ -485,7 +480,7 @@ int PresetsWindow::resize_event(int w, int h) theme->presets_text_y - BC_Title::calculate_h(this, "P") - theme->widget_border); list->reposition_window(theme->presets_list_x, theme->presets_list_y, - theme->presets_list_w, + theme->presets_list_w, theme->presets_list_h); title_text->reposition_window(theme->presets_text_x, theme->presets_text_y, diff --git a/cinelerra-5.1/cinelerra/probeprefs.C b/cinelerra-5.1/cinelerra/probeprefs.C index 57472372..47460c7e 100644 --- a/cinelerra-5.1/cinelerra/probeprefs.C +++ b/cinelerra-5.1/cinelerra/probeprefs.C @@ -50,7 +50,7 @@ void FileProbeDialog::handle_close_event(int result) ProbeEditWindow::ProbeEditWindow(FileProbeDialog *pb_dialog, int x, int y) - : BC_Window(_(PROGRAM_NAME ": Probes"), x, y, 300, 200, 300, 200, 0, 0, 1) + : BC_Window(_(PROGRAM_NAME ": Probes"), x, y, xS(300), yS(200), xS(300), yS(200), 0, 0, 1) { this->pb_dialog = pb_dialog; probe_list = 0; @@ -69,6 +69,7 @@ ProbeEditWindow::~ProbeEditWindow() void ProbeEditWindow::create_objects() { + int xs10 = xS(10), ys10 = yS(10); lock_window("ProbeEditWindow::create_objects"); pb_enabled = new BC_Pixmap(this, BC_WindowBase::get_resources()->listbox_up, @@ -80,14 +81,14 @@ void ProbeEditWindow::create_objects() for( int i=0; ifile_probes.size(); ++i ) { probe_items.append(new ProbePrefItem(this, preferences->file_probes[i])); } - int x = 10, y = 10; + int x = xs10, y = ys10; add_subwindow(probe_list = new ProbePrefList(this, x, y)); y += probe_list->get_h(); int x1 = x, y1 = y; add_subwindow(probe_up_button = new ProbeUpButton(this, x1, y1)); - x1 += probe_up_button->get_w() + 10; + x1 += probe_up_button->get_w() + xs10; add_subwindow(probe_down_button = new ProbeDownButton(this, x1, y1)); - x1 += probe_down_button->get_w() + 10; + x1 += probe_down_button->get_w() + xs10; add_subwindow(probe_enabled = new ProbeEnabled(this, x1, y1)); probe_enabled->disable(); @@ -232,8 +233,9 @@ void ProbePrefItem::set_armed(int armed) } ProbePrefList::ProbePrefList(ProbeEditWindow *pb_window, int x, int y) - : BC_ListBox(x, y, pb_window->get_w()-x-10, pb_window->get_h()-y-80, LISTBOX_ICON_LIST, - (ArrayList*) &pb_window->probe_items, 0, 0) + : BC_ListBox(x, y, pb_window->get_w()-x-xS(10), pb_window->get_h()-y-yS(80), + LISTBOX_ICON_LIST, (ArrayList*) &pb_window->probe_items, + 0, 0) { this->pb_window = pb_window; } diff --git a/cinelerra-5.1/cinelerra/proxy.C b/cinelerra-5.1/cinelerra/proxy.C index a0f5fa72..94b51270 100644 --- a/cinelerra-5.1/cinelerra/proxy.C +++ b/cinelerra-5.1/cinelerra/proxy.C @@ -47,8 +47,8 @@ #include "transportque.h" #include "vrender.h" -#define WIDTH 400 -#define HEIGHT 330 +#define WIDTH xS(400) +#define HEIGHT yS(330) #define MAX_SCALE 16 ProxyMenuItem::ProxyMenuItem(MWindow *mwindow) @@ -388,7 +388,7 @@ void ProxyWindow::create_objects() } int x = margin; - int y = margin+10; + int y = margin+yS(10); add_subwindow(use_scaler = new ProxyUseScaler(this, x, y)); y += use_scaler->get_h() + margin; @@ -396,7 +396,7 @@ void ProxyWindow::create_objects() add_subwindow(text = new BC_Title(x, y, _("Scale factor:"))); x += text->get_w() + margin; - int popupmenu_w = BC_PopupMenu::calculate_w(get_text_width(MEDIUMFONT, dialog->size_text[0])+15); + int popupmenu_w = BC_PopupMenu::calculate_w(get_text_width(MEDIUMFONT, dialog->size_text[0])+xS(15)); add_subwindow(scale_factor = new ProxyMenu(mwindow, this, x, y, popupmenu_w, "")); scale_factor->update_sizes(); x += scale_factor->get_w() + margin; @@ -417,7 +417,7 @@ void ProxyWindow::create_objects() add_subwindow(active_scale = new BC_Title(x, y, "")); y += active_scale->get_h() + margin; - x = margin; y += 25; + x = margin; y += yS(25); format_tools = new ProxyFormatTools(mwindow, this, dialog->asset); format_tools->create_objects(x, y, 0, 1, 0, 0, 0, 1, 0, 1, // skip the path 0, 0); diff --git a/cinelerra-5.1/cinelerra/question.C b/cinelerra-5.1/cinelerra/question.C index 43130fca..e89b9c0f 100644 --- a/cinelerra-5.1/cinelerra/question.C +++ b/cinelerra-5.1/cinelerra/question.C @@ -27,15 +27,14 @@ #include "ctype.h" -#define WIDTH 375 -#define HEIGHT 160 +#define WIDTH xS(375) +#define HEIGHT yS(160) QuestionWindow::QuestionWindow(MWindow *mwindow) : BC_Window(_(PROGRAM_NAME ": Question"), mwindow->gui->get_abs_cursor_x(1) - WIDTH / 2, mwindow->gui->get_abs_cursor_y(1) - HEIGHT / 2, - WIDTH, - HEIGHT) + WIDTH, HEIGHT) { this->mwindow = mwindow; } @@ -47,13 +46,13 @@ QuestionWindow::~QuestionWindow() void QuestionWindow::create_objects(const char *string, int use_cancel) { lock_window("QuestionWindow::create_objects"); - int x = 10, y = 10; - add_subwindow(new BC_Title(10, 10, string)); - y += 30; + int x = xS(10), y = yS(10); + add_subwindow(new BC_Title(x, y, string)); + y += yS(30); add_subwindow(new QuestionYesButton(mwindow, this, x, y)); x += get_w() / 2; add_subwindow(new QuestionNoButton(mwindow, this, x, y)); - x = get_w() - 100; + x = get_w() - xS(100); if(use_cancel) add_subwindow(new BC_CancelButton(x, y)); unlock_window(); } diff --git a/cinelerra-5.1/cinelerra/recconfirmdelete.C b/cinelerra-5.1/cinelerra/recconfirmdelete.C index 987b7717..1ffbbc10 100644 --- a/cinelerra-5.1/cinelerra/recconfirmdelete.C +++ b/cinelerra-5.1/cinelerra/recconfirmdelete.C @@ -32,9 +32,9 @@ RecConfirmDelete::RecConfirmDelete(MWindow *mwindow) : BC_Window(_(PROGRAM_NAME ": Confirm"), - mwindow->gui->get_abs_cursor_x(1), + mwindow->gui->get_abs_cursor_x(1), mwindow->gui->get_abs_cursor_y(1), - 320, 100) + xS(320), yS(100)) { } @@ -46,12 +46,12 @@ void RecConfirmDelete::create_objects(char *string) { lock_window("RecConfirmDelete::create_objects"); char string2[256]; - int x = 10, y = 10; + int x = xS(10), y = yS(10); sprintf(string2, _("Delete this file and %s?"), string); add_subwindow(new BC_Title(x, y, string2)); - y += 30; + y += yS(30); add_subwindow(new BC_OKButton(x, y)); - x = get_w() - 100; + x = get_w() - xS(100); add_subwindow(new BC_CancelButton(x, y)); unlock_window(); } diff --git a/cinelerra-5.1/cinelerra/recordgui.C b/cinelerra-5.1/cinelerra/recordgui.C index 8386cfc6..1f5b3921 100644 --- a/cinelerra-5.1/cinelerra/recordgui.C +++ b/cinelerra-5.1/cinelerra/recordgui.C @@ -60,9 +60,9 @@ RecordGUI::RecordGUI(MWindow *mwindow, Record *record) : BC_Window(_(PROGRAM_NAME ": Recording"), - mwindow->session->rwindow_x, mwindow->session->rwindow_y, + mwindow->session->rwindow_x, mwindow->session->rwindow_y, mwindow->session->rwindow_w, mwindow->session->rwindow_h, - 10, 10, 1, 0, 1) + xS(10), yS(10), 1, 0, 1) { this->mwindow = mwindow; this->record = record; @@ -72,7 +72,7 @@ RecordGUI::RecordGUI(MWindow *mwindow, Record *record) prev_label_title = 0; frames_behind = 0; frames_dropped = 0; - framerate = 0; + framerate = 0; samples_clipped = 0; cron_status = 0; batch_bay = 0; @@ -131,6 +131,8 @@ RecordGUI::~RecordGUI() void RecordGUI::create_objects() { + int xs5 = xS(5), xs10 = xS(10), xs20 = xS(20), xs30 = xS(30); + int ys5 = yS(5), ys10 = yS(10); char string[BCTEXTLEN]; flash_color = RED; Asset *asset = record->default_asset; @@ -143,12 +145,12 @@ void RecordGUI::create_objects() //printf("RecordGUI::create_objects 1\n"); mwindow->theme->draw_rwindow_bg(this); - int x = 10; - int y = 10; + int x = xs10; + int y = ys10; int x1 = 0; BC_Title *title; int pad = max(BC_TextBox::calculate_h(this, MEDIUMFONT, 1, 1), - BC_Title::calculate_h(this, "X")) + 5; + BC_Title::calculate_h(this, "X")) + ys5; int button_y = 0; // Current batch @@ -176,8 +178,8 @@ void RecordGUI::create_objects() int x2 = 0; - y = 10; - x = x1 + 20; + y = ys10; + x = x1 + xs20; add_subwindow(batch_path = new RecordPath(this, x, y)); add_subwindow(batch_browse = new BrowseButton(mwindow->theme, this, @@ -202,7 +204,7 @@ void RecordGUI::create_objects() batch_source->create_objects(); x2 = max(x2, batch_source->get_w()); y += pad; - batch_mode = new RecordGUIModeMenu(this, x, y, 200, ""); + batch_mode = new RecordGUIModeMenu(this, x, y, xS(200), ""); batch_mode->create_objects(); x2 = max(x2, batch_mode->get_w()); y += pad; @@ -215,10 +217,10 @@ void RecordGUI::create_objects() // Compression settings - x = x2 + x1 + 30; - y = 10; + x = x2 + x1 + xs30; + y = ys10; int x3 = 0; - pad = BC_Title::calculate_h(this, "X") + 5; + pad = BC_Title::calculate_h(this, "X") + ys5; add_subwindow(title = new BC_Title(x, y, _("Format:"))); x3 = max(title->get_w(), x3); y += pad; @@ -260,8 +262,8 @@ void RecordGUI::create_objects() y += pad; button_y = max(y, button_y); - y = 10; - x = x3 + x2 + x1 + 40; + y = ys10; + x = x3 + x2 + x1 + xS(40); add_subwindow(new BC_Title(x, y, File::formattostr(asset->format), @@ -321,16 +323,16 @@ void RecordGUI::create_objects() _("None"), MEDIUMFONT, mwindow->theme->recordgui_variable_color)); - y += pad + 10; + y += pad + ys10; button_y = max(y, button_y); // Buttons - x = 10; + x = xs10; y = button_y; add_subwindow(title = new BC_Title(x,y, _("Batches:"))); int y_max = y + title->get_h(); x1 = x; - x += title->get_w() + 5; + x += title->get_w() + xs5; add_subwindow(activate_batch = new RecordGUIActivateBatch(this, x, y)); x += activate_batch->get_w(); y_max = max(y_max, y + activate_batch->get_h()); @@ -343,10 +345,10 @@ void RecordGUI::create_objects() add_subwindow(label_button = new RecordGUILabel(this, x, y)); y_max = max(y_max, y + label_button->get_h()); - int y1 = y_max, y2 = y1 + 5; + int y1 = y_max, y2 = y1 + ys5; add_subwindow(title = new BC_Title(x1,y2, _("Cron:"))); y_max = max(y_max, y2 + title->get_h()); - x1 += title->get_w() + 5; + x1 += title->get_w() + xs5; add_subwindow(cron_status = new BC_Title(x1,y2, _("Idle"), MEDIUMFONT, mwindow->theme->recordgui_variable_color)); y_max = max(y_max, y2 + cron_status->get_h()); @@ -357,9 +359,9 @@ void RecordGUI::create_objects() add_subwindow(clrlbls_button = new RecordGUIClearLabels(this, x4, y1)); y_max = max(y_max, y1 + clrlbls_button->get_h()); - x = x1 = 10; + x = x1 = xs10; y = y_max + pad; - y1 = y + pad + 5; + y1 = y + pad + ys5; fill_frames = 0; monitor_video = 0; @@ -368,37 +370,37 @@ void RecordGUI::create_objects() if(asset->video_data) { add_subwindow(drop_frames = new RecordGUIDropFrames(this, x, y)); add_subwindow(fill_frames = new RecordGUIFillFrames(this, x, y1)); - x += drop_frames->get_w() + 5; x1 = x; + x += drop_frames->get_w() + xs5; x1 = x; add_subwindow(monitor_video = new RecordGUIMonitorVideo(this, x, y)); - x += monitor_video->get_w() + 5; + x += monitor_video->get_w() + xs5; } if(asset->audio_data) { add_subwindow(monitor_audio = new RecordGUIMonitorAudio(this, x, y)); - x += monitor_audio->get_w() + 5; + x += monitor_audio->get_w() + xs5; add_subwindow(meter_audio = new RecordGUIAudioMeters(this, x, y)); - x += meter_audio->get_w() + 5; + x += meter_audio->get_w() + xs5; } add_subwindow(power_off = new RecordGUIPowerOff(this, x1, y1)); - x1 += power_off->get_w() + 10; + x1 += power_off->get_w() + xs10; add_subwindow(commercial_check = new RecordGUICommCheck(this, x1, y1)); // Batches - x = 10; - y += 5; + x = xs10; + y += ys5; if( fill_frames ) y = y1 + fill_frames->get_h(); else if( monitor_audio ) y += monitor_audio->get_h(); int bottom_margin = max(BC_OKButton::calculate_h(), - LoadMode::calculate_h(this, mwindow->theme)) + 5; + LoadMode::calculate_h(this, mwindow->theme)) + ys5; add_subwindow(batch_bay = new RecordGUIBatches(this, x, y, - get_w() - 20, get_h() - y - bottom_margin - 10)); - y += batch_bay->get_h() + 5; + get_w() - xs20, get_h() - y - bottom_margin - ys10)); + y += batch_bay->get_h() + ys5; record->record_batches.gui = batch_bay; batch_bay->update_batches(-1); @@ -407,7 +409,7 @@ void RecordGUI::create_objects() load_mode = new LoadMode(mwindow, this, get_w() / 2 - loadmode_w / 2, y, &record->load_mode); load_mode->create_objects(); - y += load_mode->get_h() + 5; + y += load_mode->get_h() + ys5; add_subwindow(new RecordGUIOK(this)); @@ -463,6 +465,7 @@ int RecordGUI::translation_event() int RecordGUI::resize_event(int w, int h) { + int xs20 = xS(20), ys10 = yS(10); // Recompute batch list based on previous extents int bottom_margin = mwindow->session->rwindow_h - batch_bay->get_y() - @@ -476,10 +479,10 @@ int RecordGUI::resize_event(int w, int h) mwindow->theme->draw_rwindow_bg(this); int new_h = mwindow->session->rwindow_h - bottom_margin - batch_bay->get_y(); - if(new_h < 10) new_h = 10; + if(new_h < ys10) new_h = ys10; batch_bay->reposition_window(batch_bay->get_x(), batch_bay->get_y(), - mwindow->session->rwindow_w - 20, + mwindow->session->rwindow_w - xs20, mwindow->session->rwindow_h - bottom_margin - batch_bay->get_y()); load_mode->reposition_window(mwindow->session->rwindow_w / 2 - @@ -558,8 +561,8 @@ int RecordGUIBatches::selection_changed() RecordGUISave::RecordGUISave(RecordGUI *gui) - : BC_Button(10, - gui->get_h() - BC_WindowBase::get_resources()->ok_images[0]->get_h() - 10, + : BC_Button(xS(10), + gui->get_h() - BC_WindowBase::get_resources()->ok_images[0]->get_h() - yS(10), BC_WindowBase::get_resources()->ok_images) { set_tooltip(_("Save the recording and quit.")); @@ -1292,7 +1295,7 @@ int RecordGUIModeTextBox::handle_event() RecordGUIModeListBox::RecordGUIModeListBox(RecordGUIModeMenu *mode_menu) : BC_ListBox(mode_menu->textbox->get_x() + mode_menu->textbox->get_w(), - mode_menu->textbox->get_y(), 100, 50, LISTBOX_TEXT, + mode_menu->textbox->get_y(), xS(100), yS(50), LISTBOX_TEXT, &mode_menu->modes, 0, 0, 1, 0, 1) { this->mode_menu = mode_menu; @@ -1555,7 +1558,7 @@ void RecordGUIFlash::run() RecordGUIDCOffset::RecordGUIDCOffset(MWindow *mwindow, int y) - : BC_Button(230, y, mwindow->theme->calibrate_data) + : BC_Button(xS(230), y, mwindow->theme->calibrate_data) { } @@ -1569,7 +1572,7 @@ int RecordGUIDCOffset::handle_event() int RecordGUIDCOffset::keypress_event() { return 0; } RecordGUIDCOffsetText::RecordGUIDCOffsetText(char *text, int y, int number) - : BC_TextBox(30, y+1, 67, 1, text, 0) + : BC_TextBox(xS(30), y+yS(1), xS(67), 1, text, 0) { this->number = number; } @@ -1584,7 +1587,7 @@ int RecordGUIDCOffsetText::handle_event() } RecordGUIReset::RecordGUIReset(MWindow *mwindow, RecordGUI *gui, int y) - : BC_Button(400, y, mwindow->theme->over_button) + : BC_Button(xS(400), y, mwindow->theme->over_button) { this->gui = gui; } RecordGUIReset::~RecordGUIReset() @@ -1597,7 +1600,7 @@ int RecordGUIReset::handle_event() } RecordGUIResetTranslation::RecordGUIResetTranslation(MWindow *mwindow, RecordGUI *gui, int y) - : BC_Button(250, y, mwindow->theme->reset_data) + : BC_Button(xS(250), y, mwindow->theme->reset_data) { this->gui = gui; } diff --git a/cinelerra-5.1/cinelerra/recordmonitor.C b/cinelerra-5.1/cinelerra/recordmonitor.C index 2fb3a098..d8302adc 100644 --- a/cinelerra-5.1/cinelerra/recordmonitor.C +++ b/cinelerra-5.1/cinelerra/recordmonitor.C @@ -77,7 +77,7 @@ RecordMonitor::~RecordMonitor() void RecordMonitor::create_objects() { - int min_w = 150; + int min_w = xS(150); if( !record->default_asset->video_data ) min_w = MeterPanel::get_meters_width(mwindow->theme, @@ -169,12 +169,12 @@ int RecordMonitor::get_canvas_height() int RecordMonitor::get_channel_x() { // return 240; - return 5; + return xS(5); } int RecordMonitor::get_channel_y() { - return 2; + return yS(2); } void RecordMonitor::stop_playback() @@ -236,7 +236,7 @@ RecordMonitorGUI::RecordMonitorGUI(MWindow *mwindow, mwindow->session->rmonitor_y, mwindow->session->rmonitor_w, mwindow->session->rmonitor_h, - min_w, 50, 1, 1, 1, -1, + min_w, yS(50), 1, 1, 1, -1, mwindow->get_cwindow_display()) { //printf("%d %d\n", mwindow->session->rmonitor_w, mwindow->theme->rmonitor_meter_x); @@ -325,7 +325,7 @@ void RecordMonitorGUI::create_objects() add_subwindow(avc1394transport_timecode = new BC_Title(avc1394_transport->x_end, - mwindow->theme->rmonitor_tx_y + 10, + mwindow->theme->rmonitor_tx_y + yS(10), "00:00:00:00", MEDIUM_7SEGMENT, BLACK)); @@ -345,8 +345,8 @@ void RecordMonitorGUI::create_objects() background_done = 1; } - mwindow->theme->rmonitor_canvas_w = MAX(10, mwindow->theme->rmonitor_canvas_w); - mwindow->theme->rmonitor_canvas_h = MAX(10, mwindow->theme->rmonitor_canvas_h); + mwindow->theme->rmonitor_canvas_w = MAX(xS(10), mwindow->theme->rmonitor_canvas_w); + mwindow->theme->rmonitor_canvas_h = MAX(yS(10), mwindow->theme->rmonitor_canvas_h); canvas = new RecordMonitorCanvas(mwindow, this, record, mwindow->theme->rmonitor_canvas_x, mwindow->theme->rmonitor_canvas_y, @@ -358,7 +358,7 @@ void RecordMonitorGUI::create_objects() #ifdef HAVE_DVB if( driver == CAPTURE_DVB ) { int ssw = SignalStatus::calculate_w(this); - signal_status = new SignalStatus(this, get_w()-ssw-3, 0); + signal_status = new SignalStatus(this, get_w()-ssw-xS(3), 0); add_subwindow(signal_status); signal_status->create_objects(); } diff --git a/cinelerra-5.1/cinelerra/recordprefs.C b/cinelerra-5.1/cinelerra/recordprefs.C index 318cbfb4..6c671ba2 100644 --- a/cinelerra-5.1/cinelerra/recordprefs.C +++ b/cinelerra-5.1/cinelerra/recordprefs.C @@ -54,6 +54,8 @@ RecordPrefs::~RecordPrefs() void RecordPrefs::create_objects() { + int xs5 = xS(5), xs10 = xS(10), xs30 = xS(30); + int ys5 = yS(5), ys27 = yS(27), ys30 = yS(30); int x, y, x1, x2; char string[BCTEXTLEN]; BC_Resources *resources = BC_WindowBase::get_resources(); @@ -86,7 +88,7 @@ void RecordPrefs::create_objects() 0); // Supply file formats for background rendering realtime_toc = new RecordRealtimeTOC(mwindow, pwindow, - x0+400, y0, pwindow->thread->edl->session->record_realtime_toc); + x0+xS(400), y0, pwindow->thread->edl->session->record_realtime_toc); add_subwindow(realtime_toc); // Audio hardware @@ -102,17 +104,14 @@ void RecordPrefs::create_objects() add_subwindow(new BC_Title(x, y, _("Record Driver:"), MEDIUMFONT, resources->text_default)); - audio_in_device = new ADevicePrefs(x + 110, y, pwindow, this, 0, + audio_in_device = new ADevicePrefs(x + xS(110), y, pwindow, this, 0, pwindow->thread->edl->session->aconfig_in, MODERECORD); audio_in_device->initialize(1); y += audio_in_device->get_h(1) + margin; int pad = RecordWriteLength::calculate_h(this, - MEDIUMFONT, - 1, - 1) + - mwindow->theme->widget_border; + MEDIUMFONT, 1, 1) + mwindow->theme->widget_border; add_subwindow(title0 = new BC_Title(x, y, _("Samples read from device:"))); add_subwindow(title1 = new BC_Title(x, y + pad, _("Samples to write to disk:"))); add_subwindow(title2 = new BC_Title(x, y + pad * 2, _("Sample rate for recording:"))); @@ -124,11 +123,7 @@ void RecordPrefs::create_objects() sprintf(string, "%ld", (long)pwindow->thread->edl->session->record_fragment_size); RecordFragment *menu; - add_subwindow(menu = new RecordFragment(x2, - y, - pwindow, - this, - string)); + add_subwindow(menu = new RecordFragment(x2, y, pwindow, this, string)); y += menu->get_h() + mwindow->theme->widget_border; menu->add_item(new BC_MenuItem("1024")); menu->add_item(new BC_MenuItem("2048")); @@ -144,10 +139,7 @@ void RecordPrefs::create_objects() add_subwindow(textbox = new RecordWriteLength(mwindow, pwindow, x2, y, string)); y += textbox->get_h() + mwindow->theme->widget_border; add_subwindow(textbox = new RecordSampleRate(pwindow, x2, y)); - add_subwindow(new SampleRatePulldown(mwindow, - textbox, - x2 + textbox->get_w(), - y)); + add_subwindow(new SampleRatePulldown(mwindow, textbox, x2 + textbox->get_w(), y)); y += textbox->get_h() + mwindow->theme->widget_border; RecordChannels *channels = new RecordChannels(pwindow, this, x2, y); @@ -158,22 +150,22 @@ void RecordPrefs::create_objects() pwindow->thread->edl->session->aconfig_in->map51_2); add_subwindow(record_map51_2); - x2 = x + record_map51_2->get_w() + 30; + x2 = x + record_map51_2->get_w() + xs30; int y2 = y + BC_TextBox::calculate_h(this,MEDIUMFONT,1,1) - get_text_height(MEDIUMFONT); add_subwindow(title = new BC_Title(x2, y2, _("Gain:"))); - x2 += title->get_w() + 8; + x2 += title->get_w() + xS(8); RecordGain *rec_gain = new RecordGain(pwindow, this, x2, y); rec_gain->create_objects(); - x2 += rec_gain->get_w() + 30; + x2 += rec_gain->get_w() + xs30; add_subwindow(new RecordRealTime(mwindow, pwindow, x2, y, pwindow->thread->edl->session->real_time_record)); - y += 30; - x = 5; + y += ys30; + x = xs5; // Video hardware - add_subwindow(new BC_Bar(5, y, get_w() - 10)); + add_subwindow(new BC_Bar(xs5, y, get_w() - xs10)); y += margin; add_subwindow(title1 = new BC_Title(x, y, _("Video In"), LARGEFONT, @@ -193,7 +185,7 @@ void RecordPrefs::create_objects() add_subwindow(textbox = new VideoWriteLength(pwindow, string, x1, y)); x1 += textbox->get_w() + margin; add_subwindow(new CaptureLengthTumbler(pwindow, textbox, x1, y)); - y += 27; + y += ys27; add_subwindow(title1 = new BC_Title(x, y, _("Frames to buffer in device:"))); x1 = x + title1->get_w() + margin; @@ -201,21 +193,21 @@ void RecordPrefs::create_objects() add_subwindow(textbox = new VideoCaptureLength(pwindow, string, x1, y)); x1 += textbox->get_w() + margin; add_subwindow(new CaptureLengthTumbler(pwindow, textbox, x1, y)); - y += 27; + y += ys27; x1 = x; add_subwindow(new BC_Title(x1, y, _("Positioning:"))); - x1 += 120; - add_subwindow(textbox = new BC_TextBox(x1, y, 200, 1, "")); + x1 += xS(120); + add_subwindow(textbox = new BC_TextBox(x1, y, xS(200), 1, "")); RecordPositioning *positioning = new RecordPositioning(pwindow,textbox); add_subwindow(positioning); positioning->create_objects(); - y += positioning->get_h() + 5; + y += positioning->get_h() + ys5; add_subwindow(new RecordSyncDrives(pwindow, pwindow->thread->edl->session->record_sync_drives, x, y)); - y += 35; + y += yS(35); BC_TextBox *w_text, *h_text; add_subwindow(title1 = new BC_Title(x, y, _("Size of captured frame:"))); @@ -226,10 +218,10 @@ void RecordPrefs::create_objects() x += title1->get_w() + margin; add_subwindow(h_text = new RecordH(pwindow, x, y)); x += h_text->get_w() + margin; - FrameSizePulldown *tumbler; - add_subwindow(tumbler = new FrameSizePulldown(mwindow->theme, + FrameSizePulldown *frame_sizes; + add_subwindow(frame_sizes = new FrameSizePulldown(mwindow->theme, w_text, h_text, x, y)); - y += tumbler->get_h() + margin; + y += frame_sizes->get_h() + margin; x = mwindow->theme->preferencesoptions_x; add_subwindow(title1 = new BC_Title(x, y, _("Frame rate for recording:"))); @@ -252,19 +244,12 @@ int RecordPrefs::show_window(int flush) } - - - RecordFragment::RecordFragment(int x, int y, PreferencesWindow *pwindow, RecordPrefs *record, char *text) - : BC_PopupMenu(x, - y, - 100, - text, - 1) + : BC_PopupMenu(x, y, xS(100), text, 1) { this->pwindow = pwindow; this->record = record; @@ -277,13 +262,8 @@ int RecordFragment::handle_event() } - - - - - RecordWriteLength::RecordWriteLength(MWindow *mwindow, PreferencesWindow *pwindow, int x, int y, char *text) - : BC_TextBox(x, y, 100, 1, text) + : BC_TextBox(x, y, xS(100), 1, text) { this->pwindow = pwindow; } @@ -325,7 +305,7 @@ int RecordMap51_2::handle_event() RecordSampleRate::RecordSampleRate(PreferencesWindow *pwindow, int x, int y) - : BC_TextBox(x, y, 70, 1, pwindow->thread->edl->session->aconfig_in->in_samplerate) + : BC_TextBox(x, y, xS(70), 1, pwindow->thread->edl->session->aconfig_in->in_samplerate) { this->pwindow = pwindow; } @@ -362,7 +342,7 @@ int RecordRealtimeTOC::handle_event() RecordW::RecordW(PreferencesWindow *pwindow, int x, int y) - : BC_TextBox(x, y, 70, 1, pwindow->thread->edl->session->vconfig_in->w) + : BC_TextBox(x, y, xS(70), 1, pwindow->thread->edl->session->vconfig_in->w) { this->pwindow = pwindow; } @@ -373,7 +353,7 @@ int RecordW::handle_event() } RecordH::RecordH(PreferencesWindow *pwindow, int x, int y) - : BC_TextBox(x, y, 70, 1, pwindow->thread->edl->session->vconfig_in->h) + : BC_TextBox(x, y, xS(70), 1, pwindow->thread->edl->session->vconfig_in->h) { this->pwindow = pwindow; } @@ -384,7 +364,7 @@ int RecordH::handle_event() } RecordFrameRate::RecordFrameRate(PreferencesWindow *pwindow, int x, int y) - : BC_TextBox(x, y, 140, 1, pwindow->thread->edl->session->vconfig_in->in_framerate) + : BC_TextBox(x, y, xS(140), 1, pwindow->thread->edl->session->vconfig_in->in_framerate) { this->pwindow = pwindow; } @@ -399,7 +379,7 @@ int RecordFrameRate::handle_event() RecordChannels::RecordChannels(PreferencesWindow *pwindow, BC_SubWindow *gui, int x, int y) : BC_TumbleTextBox(gui, pwindow->thread->edl->session->aconfig_in->channels, - 1, MAX_CHANNELS, x, y, 100) + 1, MAX_CHANNELS, x, y, xS(100)) { this->pwindow = pwindow; } @@ -413,7 +393,7 @@ int RecordChannels::handle_event() RecordGain::RecordGain(PreferencesWindow *pwindow, BC_SubWindow *gui, int x, int y) : BC_TumbleTextBox(gui, pwindow->thread->edl->session->aconfig_in->rec_gain, - 0.0001f, 10000.0f, x, y, 72) + 0.0001f, 10000.0f, x, y, xS(72)) { this->pwindow = pwindow; this->set_increment(0.1); @@ -428,7 +408,7 @@ int RecordGain::handle_event() VideoWriteLength::VideoWriteLength(PreferencesWindow *pwindow, char *text, int x, int y) - : BC_TextBox(x, y, 100, 1, text) + : BC_TextBox(x, y, xS(100), 1, text) { this->pwindow = pwindow; } @@ -441,7 +421,7 @@ int VideoWriteLength::handle_event() VideoCaptureLength::VideoCaptureLength(PreferencesWindow *pwindow, char *text, int x, int y) - : BC_TextBox(x, y, 100, 1, text) + : BC_TextBox(x, y, xS(100), 1, text) { this->pwindow = pwindow; } @@ -484,7 +464,7 @@ int CaptureLengthTumbler::handle_down_event() RecordPositioning::RecordPositioning(PreferencesWindow *pwindow, BC_TextBox *textbox) : BC_ListBox(textbox->get_x() + textbox->get_w(), textbox->get_y(), - 200, 100, LISTBOX_TEXT, &position_type, 0, 0, 1, 0, 1) + xS(200), yS(100), LISTBOX_TEXT, &position_type, 0, 0, 1, 0, 1) { this->pwindow = pwindow; this->textbox = textbox; diff --git a/cinelerra-5.1/cinelerra/recordtransport.C b/cinelerra-5.1/cinelerra/recordtransport.C index 7f2b59da..2b19e8d4 100644 --- a/cinelerra-5.1/cinelerra/recordtransport.C +++ b/cinelerra-5.1/cinelerra/recordtransport.C @@ -77,7 +77,7 @@ void RecordTransport::create_objects() x += end_button->get_w(); x_end = max(x, x_end); y_end = max(y + end_button->get_h(), y_end); #endif - x_end += 10; y_end += 10; + x_end += xS(10); y_end += yS(10); } void RecordTransport::reposition_window(int x, int y) @@ -112,7 +112,7 @@ void RecordTransport::reposition_window(int x, int y) x += end_button->get_w(); x_end = max(x, x_end); y_end = max(y + end_button->get_h(), y_end); #endif - x_end += 10; y_end += 10; + x_end += xS(10); y_end += yS(10); } int RecordTransport::get_h() diff --git a/cinelerra-5.1/cinelerra/recordwindow.C b/cinelerra-5.1/cinelerra/recordwindow.C index 87ad8cc6..0e372f69 100644 --- a/cinelerra-5.1/cinelerra/recordwindow.C +++ b/cinelerra-5.1/cinelerra/recordwindow.C @@ -44,10 +44,11 @@ RecordWindow::~RecordWindow() void RecordWindow::create_objects() { + int x = xS(5), y = yS(5); lock_window("RecordWindow::create_objects"); - add_subwindow(new BC_Title(5, 5, _("Select a file to record to:"))); + add_subwindow(new BC_Title(x, y, _("Select a file to record to:"))); - int x = 5, y = 25; + y = yS(25); format_tools = new FormatTools(mwindow, this, record->default_asset); format_tools->create_objects(x, y, 1, 1, 1, 1, 1, 1, /* record->fixed_compression */ 0, @@ -55,7 +56,7 @@ void RecordWindow::create_objects() // Not the same as creating a new file at each label. // Load mode is now located in the RecordGUI - x = 10; +// x = xS(10); // loadmode = new LoadMode(this, x, y, &record->load_mode, 1); // loadmode->create_objects(); @@ -67,9 +68,14 @@ void RecordWindow::create_objects() RecordToTracks::RecordToTracks(Record *record, int default_) - : BC_CheckBox(200, 270, default_) { this->record = record; } + : BC_CheckBox(xS(200), yS(270), default_) +{ + this->record = record; +} RecordToTracks::~RecordToTracks() -{} +{ +} + int RecordToTracks::handle_event() { record->to_tracks = get_value(); diff --git a/cinelerra-5.1/cinelerra/recordwindow.h b/cinelerra-5.1/cinelerra/recordwindow.h index 1452c0e0..7c4d1b62 100644 --- a/cinelerra-5.1/cinelerra/recordwindow.h +++ b/cinelerra-5.1/cinelerra/recordwindow.h @@ -32,8 +32,8 @@ // Dialog for record file format. -#define RECORD_WINDOW_WIDTH 410 -#define RECORD_WINDOW_HEIGHT 360 +#define RECORD_WINDOW_WIDTH xS(410) +#define RECORD_WINDOW_HEIGHT yS(360) class RecordWindow : public BC_Window diff --git a/cinelerra-5.1/cinelerra/reindex.C b/cinelerra-5.1/cinelerra/reindex.C index 27864c12..bd782859 100644 --- a/cinelerra-5.1/cinelerra/reindex.C +++ b/cinelerra-5.1/cinelerra/reindex.C @@ -68,7 +68,7 @@ void ReIndex::run() } ReIndexWindow::ReIndexWindow(char *display = "") - : BC_Window(display, MEGREY, _(PROGRAM_NAME ": Redraw Indexes"), 340, 140, 340, 140) + : BC_Window(display, MEGREY, _(PROGRAM_NAME ": Redraw Indexes"), xS(340), yS(140), xS(340), yS(140) { } @@ -84,14 +84,14 @@ ReIndexWindow::create_objects() BC_SubWindow *subwindow; add_subwindow(subwindow = new BC_SubWindow(0, 0, w, h, MEGREY)); - subwindow->add_subwindow(new BC_Title(5, 5, _("Redraw all indexes for the current project?"))); + subwindow->add_subwindow(new BC_Title(xS(5), yS(5), _("Redraw all indexes for the current project?"))); subwindow->add_subwindow(ok = new ReIndexOkButton(this)); subwindow->add_subwindow(cancel = new ReIndexCancelButton(this)); unlock_window(); } ReIndexOkButton::ReIndexOkButton(ReIndexWindow *window) - : BC_Button(5, 80, _("Yes")) + : BC_Button(xS(5), yS(80), _("Yes")) { this->window = window; } @@ -108,7 +108,7 @@ ReIndexOkButton::keypress_event() } ReIndexCancelButton::ReIndexCancelButton(ReIndexWindow *window) - : BC_Button(140, 80, _("No")) + : BC_Button(xS(140), yS(80), _("No")) { this->window = window; } diff --git a/cinelerra-5.1/cinelerra/remotecontrol.C b/cinelerra-5.1/cinelerra/remotecontrol.C index 704a7fb6..bb61eb27 100644 --- a/cinelerra-5.1/cinelerra/remotecontrol.C +++ b/cinelerra-5.1/cinelerra/remotecontrol.C @@ -9,7 +9,7 @@ RemoteWindow::RemoteWindow(RemoteControl *remote_control) : BC_Window(_(PROGRAM_NAME ": RemoteWindow"), - 0, 0, 16, 16, -1, -1, 1, 0, 1) + 0, 0, xS(16), yS(16), -1, -1, 1, 0, 1) { this->remote_control = remote_control; } @@ -102,7 +102,8 @@ void RemoteControl::fill_color(int color) } RemoteGUI::RemoteGUI(BC_WindowBase *wdw, RemoteControl *remote_control) - : BC_Popup(wdw, remote_control->mwindow_gui->mwindow->session->mwindow_x,0,16,16, -1, 1) + : BC_Popup(wdw, remote_control->mwindow_gui->mwindow->session->mwindow_x,0, + xS(16),yS(16), -1, 1) { this->remote_control = remote_control; } diff --git a/cinelerra-5.1/cinelerra/render.C b/cinelerra-5.1/cinelerra/render.C index 653ec559..015bebd5 100644 --- a/cinelerra-5.1/cinelerra/render.C +++ b/cinelerra-5.1/cinelerra/render.C @@ -965,8 +965,8 @@ void RenderThread::run() } -#define WIDTH 480 -#define HEIGHT 480 +#define WIDTH xS(480) +#define HEIGHT yS(480) RenderWindow::RenderWindow(MWindow *mwindow, @@ -1009,13 +1009,15 @@ void RenderWindow::load_profile(int profile_slot) void RenderWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10), xs20 = xS(20); + int ys10 = yS(10), ys20 = yS(20), ys25 = yS(25), ys30 = yS(30); + int x = xs10, y = ys10; lock_window("RenderWindow::create_objects"); add_subwindow(file_format = new BC_Title(x, y, (render->use_labels ? _("Select the first file to render to:") : _("Select a file to render to:")))); - y += 25; + y += ys25; render_format = new RenderFormat(mwindow, this, asset); render_format->create_objects(x, y, @@ -1028,36 +1030,36 @@ void RenderWindow::create_objects() if( is_image ) render->range_type = RANGE_1FRAME; - int x1 = x + title->get_w() + 20, y1 = y; + int x1 = x + title->get_w() + xs20, y1 = y; add_subwindow(rangeproject = new RenderRangeProject(this, render->range_type == RANGE_PROJECT, x1, y)); int x2 = x1 + rangeproject->get_w(); - y += 20; + y += ys20; add_subwindow(rangeselection = new RenderRangeSelection(this, render->range_type == RANGE_SELECTION, x1, y)); int x3 = x1 + rangeselection->get_w(); if( x2 < x3 ) x2 = x3; - y += 20; + y += ys20; add_subwindow(rangeinout = new RenderRangeInOut(this, render->range_type == RANGE_INOUT, x1, y)); x3 = x1 + rangeinout->get_w(); if( x2 < x3 ) x2 = x3; - y += 20; + y += ys20; add_subwindow(range1frame = new RenderRange1Frame(this, render->range_type == RANGE_1FRAME, x1, y)); x3 = x1 + range1frame->get_w(); if( x2 < x3 ) x2 = x3; - y += 30; + y += ys30; if( is_image ) enable_render_range(0); - x1 = x2 + 20; + x1 = x2 + xs20; render->beep = mwindow->edl->session->render_beep; add_subwindow(beep_on_done = new RenderBeepOnDone(this, x1, y1)); renderprofile = new RenderProfile(mwindow, this, x, y, 1); renderprofile->create_objects(); - y += 70; + y += yS(70); loadmode = new LoadMode(mwindow, this, x, y, &render->load_mode); loadmode->create_objects(); diff --git a/cinelerra-5.1/cinelerra/renderfarm.C b/cinelerra-5.1/cinelerra/renderfarm.C index 074f0461..9194bf9d 100644 --- a/cinelerra-5.1/cinelerra/renderfarm.C +++ b/cinelerra-5.1/cinelerra/renderfarm.C @@ -492,13 +492,7 @@ void RenderFarmServerThread::send_asset() // The asset must be sent in two segments. // One segment is stored in the EDL and contains decoding information. // One segment is stored in the asset and contains encoding information. - server->default_asset->save_defaults(&defaults, - 0, - 1, - 1, - 1, - 1, - 1); + server->default_asset->save_defaults(&defaults, 0, 1, 1, 1, 1, 1); defaults.save_string(string1); FileXML file; server->default_asset->write(&file, 0, 0); diff --git a/cinelerra-5.1/cinelerra/renderfarmclient.C b/cinelerra-5.1/cinelerra/renderfarmclient.C index b12b5225..17b34511 100644 --- a/cinelerra-5.1/cinelerra/renderfarmclient.C +++ b/cinelerra-5.1/cinelerra/renderfarmclient.C @@ -425,13 +425,7 @@ void RenderFarmClientThread::read_asset(int socket_fd, Asset *asset) BC_Hash defaults; defaults.load_string((char*)string1); - asset->load_defaults(&defaults, - 0, - 1, - 1, - 1, - 1, - 1); + asset->load_defaults(&defaults, 0, 1, 1, 1, 1, 1); //printf("RenderFarmClientThread::read_asset %d\n", __LINE__); //asset->dump(); diff --git a/cinelerra-5.1/cinelerra/renderprofiles.C b/cinelerra-5.1/cinelerra/renderprofiles.C index 26d195ca..86162bbb 100644 --- a/cinelerra-5.1/cinelerra/renderprofiles.C +++ b/cinelerra-5.1/cinelerra/renderprofiles.C @@ -31,7 +31,7 @@ #include "errorbox.h" #include "mwindowgui.h" -#define LISTWIDTH 200 +#define LISTWIDTH xS(200) RenderProfileItem::RenderProfileItem(const char *text, int value) : BC_ListBoxItem(text) @@ -83,33 +83,20 @@ int RenderProfile::create_objects() { int x = this->x, y = this->y; const char *default_text = ""; - rwindow->add_subwindow(new BC_Title(x, - y, - _("RenderProfile:"))); - + rwindow->add_subwindow(new BC_Title(x, y, _("RenderProfile:"))); int old_y = y; rwindow->add_subwindow(title = new BC_Title(x, y, _("Render profile:"))); - y += 25; - rwindow->add_subwindow(textbox = new BC_TextBox(x, - y, - LISTWIDTH, - 1, - default_text)); + y += yS(25); + rwindow->add_subwindow(textbox = new BC_TextBox(x, y, LISTWIDTH, 1, default_text)); x += textbox->get_w(); rwindow->add_subwindow(listbox = new RenderProfileListBox(rwindow, this, x, y)); y = old_y; - x += listbox->get_w() + 10; - rwindow->add_subwindow(saveprofile = new SaveRenderProfileButton(this, - x, - y)); - y += 25; - rwindow->add_subwindow(deleteprofile = new DeleteRenderProfileButton(this, - x, - y)); - - + x += listbox->get_w() + xS(10); + rwindow->add_subwindow(saveprofile = new SaveRenderProfileButton(this, x, y)); + y += yS(25); + rwindow->add_subwindow(deleteprofile = new DeleteRenderProfileButton(this, x, y)); return 0; } @@ -137,7 +124,7 @@ int RenderProfile::reposition_window(int x, int y) this->x = x; this->y = y; title->reposition_window(x, y); - y += 20; + y += yS(20); textbox->reposition_window(x, y); x += textbox->get_w(); listbox->reposition_window(x, @@ -148,20 +135,10 @@ int RenderProfile::reposition_window(int x, int y) RenderProfileListBox::RenderProfileListBox(BC_WindowBase *window, - RenderProfile *renderprofile, - int x, - int y) - : BC_ListBox(x, - y, - LISTWIDTH, - 150, - LISTBOX_TEXT, + RenderProfile *renderprofile, int x, int y) + : BC_ListBox(x, y, LISTWIDTH, yS(150), LISTBOX_TEXT, (ArrayList*)&renderprofile->profiles, - 0, - 0, - 1, - 0, - 1) + 0, 0, 1, 0, 1) { this->window = window; this->renderprofile = renderprofile; @@ -300,12 +277,6 @@ int DeleteRenderProfileButton::handle_event() profile->textbox->update(""); } - - return 1; } - - - - diff --git a/cinelerra-5.1/cinelerra/resizetrackthread.C b/cinelerra-5.1/cinelerra/resizetrackthread.C index c929c64b..eb6f295a 100644 --- a/cinelerra-5.1/cinelerra/resizetrackthread.C +++ b/cinelerra-5.1/cinelerra/resizetrackthread.C @@ -96,18 +96,13 @@ void ResizeVTrackThread::run() #endif } - - +#define RSZ_W xS(320) +#define RSZ_H yS(120) ResizeVTrackWindow::ResizeVTrackWindow(MWindow *mwindow, - ResizeVTrackThread *thread, - int x, - int y) - : BC_Window(_(PROGRAM_NAME ": Resize Track"), - x - 320 / 2, y - get_resources()->ok_images[0]->get_h() + 100 / 2, - 400, get_resources()->ok_images[0]->get_h() + 100, - 400, get_resources()->ok_images[0]->get_h() + 100, - 0, 0, 1) + ResizeVTrackThread *thread, int x, int y) + : BC_Window(_(PROGRAM_NAME ": Resize Track"), x-RSZ_W/2, y-RSZ_H/2, + RSZ_W, RSZ_H, RSZ_W, RSZ_H, 0, 0, 1) { this->mwindow = mwindow; this->thread = thread; @@ -119,27 +114,29 @@ ResizeVTrackWindow::~ResizeVTrackWindow() void ResizeVTrackWindow::create_objects() { + int xs5 = xS(5), xs10 = xS(10); + int ys10 = yS(10); lock_window("ResizeVTrackWindow::create_objects"); - int x = 10, y = 10; + int x = xs10, y = ys10; BC_Title *size_title = new BC_Title(x, y, _("Size:")); add_subwindow(size_title); int x1 = x + size_title->get_w(); - int y1 = y + size_title->get_h() + 10; + int y1 = y + size_title->get_h() + ys10; BC_Title *scale_title = new BC_Title(x, y1, _("Scale:")); add_subwindow(scale_title); int x2 = x + scale_title->get_w(); if( x2 > x1 ) x1 = x2; - x1 += 10; + x1 += ys10; add_subwindow(w = new ResizeVTrackWidth(this, thread, x1, y)); - x2 = x1 + w->get_w() + 5; + x2 = x1 + w->get_w() + xs5; BC_Title *xy = new BC_Title(x2, y, _("x")); add_subwindow(xy); - int x3 = x2 + xy->get_w() + 5; + int x3 = x2 + xy->get_w() + xs5; add_subwindow(h = new ResizeVTrackHeight(this, thread, x3, y)); - x = x3 + h->get_w() + 5; + x = x3 + h->get_w() + xs5; FrameSizePulldown *pulldown; add_subwindow(pulldown = new FrameSizePulldown(mwindow->theme, w, h, x, y)); - x += pulldown->get_w() + 5; + x += pulldown->get_w() + xs5; add_subwindow(new ResizeVTrackSwap(this, thread, x, y)); add_subwindow(w_scale = new ResizeVTrackScaleW(this, thread, x1, y1)); @@ -213,7 +210,7 @@ ResizeVTrackWidth::ResizeVTrackWidth(ResizeVTrackWindow *gui, ResizeVTrackThread *thread, int x, int y) - : BC_TextBox(x, y, 90, 1, thread->w) + : BC_TextBox(x, y, xS(90), 1, thread->w) { this->gui = gui; this->thread = thread; @@ -229,7 +226,7 @@ ResizeVTrackHeight::ResizeVTrackHeight(ResizeVTrackWindow *gui, ResizeVTrackThread *thread, int x, int y) - : BC_TextBox(x, y, 90, 1, thread->h) + : BC_TextBox(x, y, xS(90), 1, thread->h) { this->gui = gui; this->thread = thread; @@ -246,7 +243,7 @@ ResizeVTrackScaleW::ResizeVTrackScaleW(ResizeVTrackWindow *gui, ResizeVTrackThread *thread, int x, int y) - : BC_TextBox(x, y, 90, 1, (float)thread->w_scale) + : BC_TextBox(x, y, xS(90), 1, (float)thread->w_scale) { this->gui = gui; this->thread = thread; @@ -262,7 +259,7 @@ ResizeVTrackScaleH::ResizeVTrackScaleH(ResizeVTrackWindow *gui, ResizeVTrackThread *thread, int x, int y) - : BC_TextBox(x, y, 90, 1, (float)thread->h_scale) + : BC_TextBox(x, y, xS(90), 1, (float)thread->h_scale) { this->gui = gui; this->thread = thread; diff --git a/cinelerra-5.1/cinelerra/resourcepixmap.C b/cinelerra-5.1/cinelerra/resourcepixmap.C index 8c874bb9..c65d1b95 100644 --- a/cinelerra-5.1/cinelerra/resourcepixmap.C +++ b/cinelerra-5.1/cinelerra/resourcepixmap.C @@ -293,7 +293,7 @@ void ResourcePixmap::draw_title(TrackCanvas *canvas, // coords relative to pixmap int64_t total_x = edit_x - pixmap_x, total_w = edit_w; int64_t x = total_x, w = total_w; - int left_margin = 10; + int left_margin = xS(10); if( x < 0 ) { w -= -x; x = 0; } if( w > pixmap_w ) w -= w - pixmap_w; @@ -316,7 +316,7 @@ void ResourcePixmap::draw_title(TrackCanvas *canvas, text_x = MAX(left_margin, text_x); //printf("ResourcePixmap::draw_title 1 %d\n", text_x); canvas->draw_text(text_x, // 2, - canvas->get_text_ascent(mwindow->theme->title_font) + 2, + canvas->get_text_ascent(mwindow->theme->title_font) + yS(2), title, strlen(title), this); } @@ -664,7 +664,7 @@ void ResourcePixmap::draw_subttl_resource(TrackCanvas *canvas, Edit *edit, int x { SEdit *sedit = (SEdit *)edit; char *text = sedit->get_text(); - if( !*text || w < 10 ) return; + if( !*text || w < xS(10) ) return; int center_pixel = canvas->resource_h() / 2; if( edit->track->show_titles() ) center_pixel += mwindow->theme->get_image("title_bg_data")->get_h(); @@ -678,7 +678,7 @@ void ResourcePixmap::draw_subttl_resource(TrackCanvas *canvas, Edit *edit, int x canvas->set_color(color); int ch = canvas->get_text_height(font); int hh = canvas->get_text_height(font,text) + ch/2; - int y1 = y_max - hh - 10; + int y1 = y_max - hh - yS(10); if( y1 < 0 ) y1 = 0; canvas->draw_text(x1, y1, text, -1, this); } diff --git a/cinelerra-5.1/cinelerra/savefile.C b/cinelerra-5.1/cinelerra/savefile.C index ffd9aef6..552f2d35 100644 --- a/cinelerra-5.1/cinelerra/savefile.C +++ b/cinelerra-5.1/cinelerra/savefile.C @@ -39,13 +39,6 @@ #include - - - - - - - SaveBackup::SaveBackup(MWindow *mwindow) : BC_MenuItem(_("Save backup"), "b", 'b') { @@ -59,15 +52,6 @@ int SaveBackup::handle_event() } - - - - - - - - - Save::Save(MWindow *mwindow) : BC_MenuItem(_("Save"), "s", 's') { this->mwindow = mwindow; @@ -252,7 +236,7 @@ int SaveProjectModeItem::handle_event() } SaveProjectMode::SaveProjectMode(SaveProjectWindow *gui, int x, int y) - : BC_PopupMenu(x, y, 100, "") + : BC_PopupMenu(x, y, xS(100), "") { this->gui = gui; save_modes[SAVE_PROJECT_COPY] = _("Copy"); @@ -298,7 +282,7 @@ SaveProjectWindow::SaveProjectWindow(MWindow *mwindow, const char *dir_path, mwindow->gui->get_abs_cursor_x(1), mwindow->gui->get_abs_cursor_y(1) - BC_WindowBase::get_resources()->filebox_h / 2, - 540, 220, 540, 220, 0) + xS(540), yS(220), xS(540), yS(220), 0) { this->mwindow = mwindow; strcpy(this->dir_path, dir_path); @@ -312,26 +296,28 @@ SaveProjectWindow::~SaveProjectWindow() void SaveProjectWindow::create_objects() { - int x = 20, y = 20, x1 = get_w()-80; + int xs10 = xS(10), xs20 = xS(20); + int ys10 = yS(10), ys20 = yS(20); + int x = xs20, y = ys20, x1 = get_w()-xS(80); BC_Title *title; add_subwindow(title = new BC_Title(x, y, _("Project Directory:"))); - y += title->get_h() + 10; + y += title->get_h() + ys10; add_subwindow(textbox = new SaveProjectTextBox(this, x, y, x1-x)); - x1 += 10; + x1 += xs10; add_subwindow(recent_project = new BC_RecentList("RECENT_PROJECT", - mwindow->defaults, textbox, 10, x1, y, 300, 100)); + mwindow->defaults, textbox, 10, x1, y, xS(300), yS(100))); recent_project->load_items("RECENT_PROJECT"); - x1 += recent_project->get_w() + 10; + x1 += recent_project->get_w() + xs10; add_subwindow(browse_button = new BrowseButton(mwindow->theme, this, - textbox, x1, y-5, "", "", "", 1)); - y += textbox->get_h() + 20; + textbox, x1, y-yS(5), "", "", "", 1)); + y += textbox->get_h() + ys20; add_subwindow(mode_popup = new SaveProjectMode(this, x, y)); mode_popup->create_objects(); - y += mode_popup->get_h() + 10; + y += mode_popup->get_h() + ys10; x1 = x; BC_CheckBox *overwrite_files, *reload_project; add_subwindow(overwrite_files = new BC_CheckBox(x1, y, &overwrite, _("Overwrite files"))); - x1 += overwrite_files->get_w() + 20; + x1 += overwrite_files->get_w() + xs20; add_subwindow(reload_project = new BC_CheckBox(x1, y, &reload, _("Reload project"))); add_subwindow(new BC_OKButton(this)); add_subwindow(new BC_CancelButton(this)); diff --git a/cinelerra-5.1/cinelerra/scale.C b/cinelerra-5.1/cinelerra/scale.C index b963bb93..8c7b49c9 100644 --- a/cinelerra-5.1/cinelerra/scale.C +++ b/cinelerra-5.1/cinelerra/scale.C @@ -194,7 +194,7 @@ int ScaleThread::update_aspect(ScaleWindow *window) ScaleWindow::ScaleWindow(ScaleThread *thread) - : BC_Window(_(PROGRAM_NAME ": Scale"), 370, 260, 0, 0) + : BC_Window(_(PROGRAM_NAME ": Scale"), xS(370), yS(260), 0, 0) { this->thread = thread; } ScaleWindow::~ScaleWindow() @@ -203,118 +203,97 @@ ScaleWindow::~ScaleWindow() void ScaleWindow::create_objects() { + int xs5 = xS(5), xs10 = xS(10), xs20 = xS(20), xs30 = xS(30), xs200 = xS(200); + int ys5 = yS(5), ys10 = yS(10), ys20 = yS(20), ys30 = yS(30); lock_window("ScaleWindow::create_objects"); - int x = 10, y = 10; + int x = xs10, y = ys10; + int x0 = x, x1 = x + xS(70), x2 = x1 = xS(110), x3 = x = xS(70); add_subwindow(new BC_Title(x, y, _("New camera size:"))); - add_subwindow(new BC_Title(x + 200, y, _("New projector size:"))); - y += 30; - add_subwindow(new BC_Title(x, y, _("Width:"))); - x += 70; - add_subwindow(dimension[0] = new ScaleSizeText(x, y, thread, &(thread->dimension[0]))); - x += 110; - add_subwindow(new BC_Title(x, y, _("Width:"))); - x += 70; - add_subwindow(dimension[2] = new ScaleSizeText(x, y, thread, &(thread->dimension[2]))); - - y += 30; - x = 10; - add_subwindow(new BC_Title(x, y, _("Height:"))); - x += 70; - add_subwindow(dimension[1] = new ScaleSizeText(x, y, thread, &(thread->dimension[1]))); - x += 110; - add_subwindow(new BC_Title(x, y, _("Height:"))); - x += 70; - add_subwindow(dimension[3] = new ScaleSizeText(x, y, thread, &(thread->dimension[3]))); - - y += 30; - x = 10; - add_subwindow(new BC_Title(x, y, _("W Ratio:"))); - x += 70; - add_subwindow(ratio[0] = new ScaleRatioText(x, y, thread, &(thread->ratio[0]))); - x += 110; - add_subwindow(new BC_Title(x, y, _("W Ratio:"))); - x += 70; - add_subwindow(ratio[2] = new ScaleRatioText(x, y, thread, &(thread->ratio[2]))); - - y += 30; - x = 10; - add_subwindow(new BC_Title(x, y, _("H Ratio:"))); - x += 70; - add_subwindow(ratio[1] = new ScaleRatioText(x, y, thread, &(thread->ratio[1]))); - x += 110; - add_subwindow(new BC_Title(x, y, _("H Ratio:"))); - x += 70; - add_subwindow(ratio[3] = new ScaleRatioText(x, y, thread, &(thread->ratio[3]))); - -// y += 30; -// x = 10; -// add_subwindow(new BC_Title(x, y, "X Offset:")); -// x += 70; -// add_subwindow(offsets[0] = new ScaleOffsetText(x, y, thread, &(thread->offsets[0]))); -// x += 110; -// add_subwindow(new BC_Title(x, y, "X Offset:")); -// x += 70; -// add_subwindow(offsets[2] = new ScaleOffsetText(x, y, thread, &(thread->offsets[2]))); + add_subwindow(new BC_Title(x + xs200, y, _("New projector size:"))); + y += ys30; + add_subwindow(new BC_Title(x0, y, _("Width:"))); + add_subwindow(dimension[0] = new ScaleSizeText(x1, y, thread, &(thread->dimension[0]))); + add_subwindow(new BC_Title(x2, y, _("Width:"))); + add_subwindow(dimension[2] = new ScaleSizeText(x3, y, thread, &(thread->dimension[2]))); + + y += ys30; + add_subwindow(new BC_Title(x0, y, _("Height:"))); + add_subwindow(dimension[1] = new ScaleSizeText(x1, y, thread, &(thread->dimension[1]))); + add_subwindow(new BC_Title(x2, y, _("Height:"))); + add_subwindow(dimension[3] = new ScaleSizeText(x3, y, thread, &(thread->dimension[3]))); + + y += ys30; + add_subwindow(new BC_Title(x0, y, _("W Ratio:"))); + add_subwindow(ratio[0] = new ScaleRatioText(x1, y, thread, &(thread->ratio[0]))); + add_subwindow(new BC_Title(x2, y, _("W Ratio:"))); + add_subwindow(ratio[2] = new ScaleRatioText(x3, y, thread, &(thread->ratio[2]))); + + y += ys30; + add_subwindow(new BC_Title(x0, y, _("H Ratio:"))); + add_subwindow(ratio[1] = new ScaleRatioText(x1, y, thread, &(thread->ratio[1]))); + add_subwindow(new BC_Title(x2, y, _("H Ratio:"))); + add_subwindow(ratio[3] = new ScaleRatioText(x3, y, thread, &(thread->ratio[3]))); + +// y += ys30; +// add_subwindow(new BC_Title(x0, y, "X Offset:")); +// add_subwindow(offsets[0] = new ScaleOffsetText(x1, y, thread, &(thread->offsets[0]))); +// add_subwindow(new BC_Title(x2, y, "X Offset:")); +// add_subwindow(offsets[2] = new ScaleOffsetText(x3, y, thread, &(thread->offsets[2]))); // -// y += 30; -// x = 10; -// add_subwindow(new BC_Title(x, y, "Y Offset:")); -// x += 70; -// add_subwindow(offsets[1] = new ScaleOffsetText(x, y, thread, &(thread->offsets[1]))); -// x += 110; -// add_subwindow(new BC_Title(x, y, "Y Offset:")); -// x += 70; -// add_subwindow(offsets[3] = new ScaleOffsetText(x, y, thread, &(thread->offsets[3]))); - - x = 10; - y += 30; +// y += ys30; +// add_subwindow(new BC_Title(x0, y, "Y Offset:")); +// add_subwindow(offsets[1] = new ScaleOffsetText(x1, y, thread, &(thread->offsets[1]))); +// add_subwindow(new BC_Title(x2, y, "Y Offset:")); +// add_subwindow(offsets[3] = new ScaleOffsetText(x3, y, thread, &(thread->offsets[3]))); + + y += ys30; add_subwindow(new BC_Title(x, y, _("Aspect ratio:"))); - x += 100; + x += xS(100); char string[1024]; sprintf(string, "%.0f", thread->aspect_w); add_subwindow(aspect_w = new ScaleAspectW(x, y, thread, &(thread->aspect_w), string)); - x += 55; + x += xS(55); add_subwindow(new BC_Title(x, y, ":")); - x += 10; + x += xs10; sprintf(string, "%.0f", thread->aspect_h); add_subwindow(aspect_h = new ScaleAspectH(x, y, thread, &(thread->aspect_h), string)); - x += 60; + x += xS(60); add_subwindow(new ScaleAspectAuto(x, y + 5, thread)); - y += 30; -// x = 40; + y += ys30; +// x = xS(40); // add_subwindow(new BC_Title(x, y, _("Camera position:"))); -// x += 200; +// x += xs200; // add_subwindow(new BC_Title(x, y, _("Projector position:"))); // ScalePosition *position; -// x = 60; -// y += 25; +// x = xS(60); +// y += yS(25); // add_subwindow(position1 = new ScalePosition(x, y, thread, this, // &(thread->orig_dimension[0]), &(thread->dimension[0]), &(thread->offsets[0]))); // position1->draw(); -// x += 200; +// x += xs200; // add_subwindow(position2 = new ScalePosition(x, y, thread, this, // &(thread->orig_dimension[2]), &(thread->dimension[2]), &(thread->offsets[2]))); // position2->draw(); -// y += 110; - x = 10; +// y += yS(110); + x = xs10; add_subwindow(new ScaleConstrain(x, y, thread)); - x += 200; + x += xs200; add_subwindow(new ScaleData(x, y, thread)); - y += 30; - x = 50; + y += ys30; + x = xS(50); add_subwindow(new BC_OKButton(x, y)); - x += 200; + x += xs200; add_subwindow(new BC_CancelButton(x, y)); unlock_window(); } ScaleSizeText::ScaleSizeText(int x, int y, ScaleThread *thread, int *output) - : BC_TextBox(x, y, 100, 1, *output) + : BC_TextBox(x, y, xS(100), 1, *output) { this->thread = thread; this->output = output; @@ -323,8 +302,7 @@ ScaleSizeText::~ScaleSizeText() {} int ScaleSizeText::handle_event() { *output = atol(get_text()); - *output /= 2; - *output *= 2; + *output /= 2; *output *= 2; if(*output <= 0) *output = 2; if(*output > 10000) *output = 10000; *output *= -1; @@ -332,7 +310,7 @@ int ScaleSizeText::handle_event() } ScaleOffsetText::ScaleOffsetText(int x, int y, ScaleThread *thread, int *output) - : BC_TextBox(x, y, 100, 1, *output) + : BC_TextBox(x, y, xs(100), 1, *output) { this->thread = thread; this->output = output; } ScaleOffsetText::~ScaleOffsetText() {} int ScaleOffsetText::handle_event() @@ -345,7 +323,7 @@ int ScaleOffsetText::handle_event() } ScaleRatioText::ScaleRatioText(int x, int y, ScaleThread *thread, float *output) - : BC_TextBox(x, y, 100, 1, *output) + : BC_TextBox(x, y, xS(100), 1, *output) { this->thread = thread; this->output = output; } ScaleRatioText::~ScaleRatioText() {} int ScaleRatioText::handle_event() @@ -399,7 +377,7 @@ int ScaleAspectAuto::handle_event() ScaleAspectW::ScaleAspectW(int x, int y, ScaleThread *thread, float *output, char *string) - : BC_TextBox(x, y, 50, 1, string) + : BC_TextBox(x, y, xS(50), 1, string) { this->output = output; this->thread = thread; @@ -415,7 +393,7 @@ int ScaleAspectW::handle_event() ScaleAspectH::ScaleAspectH(int x, int y, ScaleThread *thread, float *output, char *string) - : BC_TextBox(x, y, 50, 1, string) + : BC_TextBox(x, y, xS(50), 1, string) { this->output = output; this->thread = thread; diff --git a/cinelerra-5.1/cinelerra/scopewindow.C b/cinelerra-5.1/cinelerra/scopewindow.C index 4713b95d..4bbd34fa 100644 --- a/cinelerra-5.1/cinelerra/scopewindow.C +++ b/cinelerra-5.1/cinelerra/scopewindow.C @@ -737,11 +737,12 @@ void ScopeGUI::allocate_bitmaps() // wave_h, // vector_w, // vector_h); - w = MAX(wave_w, 16); - h = MAX(wave_h, 16); + int xs16 = xS(16), ys16 = yS(16); + w = MAX(wave_w, xs16); + h = MAX(wave_h, ys16); waveform_bitmap = new_bitmap(w, h); - w = MAX(vector_w, 16); - h = MAX(vector_h, 16); + w = MAX(vector_w, xs16); + h = MAX(vector_h, ys16); vector_bitmap = new_bitmap(w, h); } diff --git a/cinelerra-5.1/cinelerra/scopewindow.h b/cinelerra-5.1/cinelerra/scopewindow.h index 820c3d58..3c645521 100644 --- a/cinelerra-5.1/cinelerra/scopewindow.h +++ b/cinelerra-5.1/cinelerra/scopewindow.h @@ -43,8 +43,8 @@ #define HISTOGRAM_MAX 110 #define FLOAT_MAX 1.1 -#define MIN_SCOPE_W 320 -#define MIN_SCOPE_H 320 +#define MIN_SCOPE_W xS(640) +#define MIN_SCOPE_H yS(320) diff --git a/cinelerra-5.1/cinelerra/setformat.C b/cinelerra-5.1/cinelerra/setformat.C index 67366aa1..ba894a86 100644 --- a/cinelerra-5.1/cinelerra/setformat.C +++ b/cinelerra-5.1/cinelerra/setformat.C @@ -271,13 +271,6 @@ void SetFormatThread::update_aspect() } - - - - - - - SetFormatWindow::SetFormatWindow(MWindow *mwindow, SetFormatThread *thread, int x, int y) : BC_Window(_(PROGRAM_NAME ": Set Format"), x, y, @@ -296,7 +289,7 @@ SetFormatWindow::~SetFormatWindow() void SetFormatWindow::create_objects() { lock_window("SetFormatWindow::create_objects"); - int x = 10, y = mwindow->theme->setformat_y1; + int x = xS(10), y = mwindow->theme->setformat_y1; BC_TextBox *textbox; BC_Title *title; mwindow->theme->draw_setformat_bg(this); @@ -417,17 +410,10 @@ void SetFormatWindow::create_objects() y, _("Color model:"))); x = mwindow->theme->setformat_x4; - add_subwindow(textbox = new BC_TextBox(x, - y, - 100, - 1, - "")); + add_subwindow(textbox = new BC_TextBox(x, y, xS(100), 1, "")); x += textbox->get_w(); - add_subwindow(color_model = new ColormodelPulldown(mwindow, - textbox, - &thread->new_settings->session->color_model, - x, - y)); + add_subwindow(color_model = new ColormodelPulldown(mwindow, textbox, + &thread->new_settings->session->color_model, x, y)); y += mwindow->theme->setformat_margin; add_subwindow(new BC_Title(mwindow->theme->setformat_x3, @@ -435,13 +421,11 @@ void SetFormatWindow::create_objects() _("Aspect ratio:"))); y += mwindow->theme->setformat_margin; x = mwindow->theme->setformat_x3; - add_subwindow(aspect_w = new ScaleAspectText(x, - y, - thread, + add_subwindow(aspect_w = new ScaleAspectText(x, y, thread, &(thread->new_settings->session->aspect_w))); - x += aspect_w->get_w() + 5; + x += aspect_w->get_w() + xS(5); add_subwindow(new BC_Title(x, y, ":")); - x += 10; + x += xS(10); add_subwindow(aspect_h = new ScaleAspectText(x, y, thread, @@ -452,7 +436,7 @@ void SetFormatWindow::create_objects() aspect_h, x, y)); - x += 30; + x += xS(30); add_subwindow(auto_aspect = new ScaleAspectAuto(x, y, thread)); y += mwindow->theme->setformat_margin; @@ -460,27 +444,20 @@ void SetFormatWindow::create_objects() add_subwindow(new BC_Title(mwindow->theme->setformat_x3, y, _("Interlace mode:"))); - add_subwindow(textbox = new BC_TextBox(mwindow->theme->setformat_x4, - y, - 140, - 1, - "")); + add_subwindow(textbox = new BC_TextBox(mwindow->theme->setformat_x4, y, + xS(140), 1, "")); add_subwindow(interlace_pulldown = new InterlacemodePulldown(mwindow, - textbox, - &(thread->new_settings->session->interlace_mode), + textbox, &(thread->new_settings->session->interlace_mode), (ArrayList*)&mwindow->interlace_project_modes, - mwindow->theme->setformat_x4 + textbox->get_w(), - y)); + mwindow->theme->setformat_x4 + textbox->get_w(), y)); y += mwindow->theme->setformat_margin; - BC_OKTextButton *ok; BC_CancelTextButton *cancel; add_subwindow(ok = new BC_OKTextButton(this)); add_subwindow(cancel = new BC_CancelTextButton(this)); add_subwindow(new SetFormatApply((ok->get_x() + cancel->get_x()) / 2, - ok->get_y(), - thread)); + ok->get_y(), thread)); flash(); show_window(); unlock_window(); @@ -519,7 +496,7 @@ EDL* SetFormatPresets::get_edl() SetSampleRateTextBox::SetSampleRateTextBox(SetFormatThread *thread, int x, int y) - : BC_TextBox(x, y, 100, 1, (int64_t)thread->new_settings->session->sample_rate) + : BC_TextBox(x, y, xS(100), 1, (int64_t)thread->new_settings->session->sample_rate) { this->thread = thread; } @@ -530,7 +507,7 @@ int SetSampleRateTextBox::handle_event() } SetChannelsTextBox::SetChannelsTextBox(SetFormatThread *thread, int x, int y) - : BC_TextBox(x, y, 100, 1, thread->new_settings->session->audio_channels) + : BC_TextBox(x, y, xS(100), 1, thread->new_settings->session->audio_channels) { this->thread = thread; } @@ -612,10 +589,7 @@ int SetChannelsCanvas::draw(int angle) for(int i = 0; i < thread->new_settings->session->audio_channels; i++) { get_dimensions(thread->new_settings->session->achannel_positions[i], - x, - y, - w, - h); + x, y, w, h); double rotate_angle = thread->new_settings->session->achannel_positions[i]; rotate_angle = -rotate_angle; while(rotate_angle < 0) rotate_angle += 360; @@ -644,19 +618,16 @@ int SetChannelsCanvas::draw(int angle) } int SetChannelsCanvas::get_dimensions(int channel_position, - int &x, - int &y, - int &w, - int &h) -{ -#define MARGIN 10 - int real_w = this->get_w() - box_r * 2 - MARGIN; - int real_h = this->get_h() - box_r * 2 - MARGIN; + int &x, int &y, int &w, int &h) +{ + int xs10 = xS(10), ys10 = yS(10); + int real_w = this->get_w() - box_r * 2 - xs10; + int real_h = this->get_h() - box_r * 2 - ys10; float corrected_position = channel_position; if(corrected_position < 0) corrected_position += 360; Units::polar_to_xy((float)corrected_position, real_w / 2, x, y); - x += real_w / 2 + MARGIN / 2; - y += real_h / 2 + MARGIN / 2; + x += real_w / 2 + xs10 / 2; + y += real_h / 2 + ys10 / 2; w = box_r * 2; h = box_r * 2; return 0; @@ -723,7 +694,7 @@ int SetChannelsCanvas::cursor_motion_event() SetFrameRateTextBox::SetFrameRateTextBox(SetFormatThread *thread, int x, int y) - : BC_TextBox(x, y, 100, 1, (float)thread->new_settings->session->frame_rate) + : BC_TextBox(x, y, xS(100), 1, (float)thread->new_settings->session->frame_rate) { this->thread = thread; } @@ -737,7 +708,7 @@ int SetFrameRateTextBox::handle_event() // // SetVChannels::SetVChannels(SetFormatThread *thread, int x, int y) -// : BC_TextBox(x, y, 100, 1, thread->channels) +// : BC_TextBox(x, y, xS(100), 1, thread->channels) // { // this->thread = thread; // } @@ -751,7 +722,7 @@ int SetFrameRateTextBox::handle_event() ScaleSizeText::ScaleSizeText(int x, int y, SetFormatThread *thread, int *output) - : BC_TextBox(x, y, 100, 1, *output) + : BC_TextBox(x, y, xS(100), 1, *output) { this->thread = thread; this->output = output; @@ -762,8 +733,7 @@ ScaleSizeText::~ScaleSizeText() int ScaleSizeText::handle_event() { *output = atol(get_text()); - *output /= 2; - *output *= 2; + *output /= 2; *output *= 2; if(*output <= 0) *output = 2; if(*output > 10000) *output = 10000; *output *= -1; @@ -777,7 +747,7 @@ ScaleRatioText::ScaleRatioText(int x, int y, SetFormatThread *thread, float *output) - : BC_TextBox(x, y, 100, 1, *output) + : BC_TextBox(x, y, xS(100), 1, *output) { this->thread = thread; this->output = output; @@ -815,7 +785,7 @@ int ScaleAspectAuto::handle_event() } ScaleAspectText::ScaleAspectText(int x, int y, SetFormatThread *thread, float *output) - : BC_TextBox(x, y, 70, 1, *output) + : BC_TextBox(x, y, xS(70), 1, *output) { this->output = output; this->thread = thread; diff --git a/cinelerra-5.1/cinelerra/shbtnprefs.C b/cinelerra-5.1/cinelerra/shbtnprefs.C index 679d16f4..e8e44b0b 100644 --- a/cinelerra-5.1/cinelerra/shbtnprefs.C +++ b/cinelerra-5.1/cinelerra/shbtnprefs.C @@ -126,7 +126,8 @@ void ShBtnEditDialog::handle_close_event(int result) ShBtnEditWindow::ShBtnEditWindow(ShBtnEditDialog *shbtn_edit, int x, int y) - : BC_Window(_(PROGRAM_NAME ": Shell"), x, y, 300, 200, 300, 200, 0, 0, 1) + : BC_Window(_(PROGRAM_NAME ": Shell"), x, y, + xS(300), yS(200), xS(300), yS(200), 0, 0, 1) { this->shbtn_edit = shbtn_edit; sb_dialog = 0; @@ -217,7 +218,8 @@ ShBtnTextDialog::~ShBtnTextDialog() } ShBtnTextWindow::ShBtnTextWindow(ShBtnEditWindow *sb_window, int x, int y) - : BC_Window(_(PROGRAM_NAME ": Commands"), x, y, 640, 160, 640, 150, 0, 0, 1) + : BC_Window(_(PROGRAM_NAME ": Commands"), x, y, + xS(640), yS(160), xS(640), yS(150), 0, 0, 1) { this->sb_window = sb_window; warn = sb_window->sb_dialog->pref->warn; @@ -245,7 +247,7 @@ int ShBtnErrWarnItem::handle_event() } ShBtnErrWarn::ShBtnErrWarn(ShBtnTextWindow *st_window, int x, int y) - : BC_PopupMenu(x, y, 120, st_window->warn < 0 ? _("Always"): + : BC_PopupMenu(x, y, xS(120), st_window->warn < 0 ? _("Always"): !st_window->warn ? _("Never") : _("On Error")) { this->st_window = st_window; @@ -279,26 +281,26 @@ ShBtnRunScript::~ShBtnRunScript() void ShBtnTextWindow::create_objects() { lock_window("ShBtnTextWindow::create_objects"); - int x = 10, y = 10; - int x1 = 160; + int x = xS(10), y = yS(10); + int x1 = xS(160); BC_Title *title = new BC_Title(x, y, _("Label:")); add_subwindow(title); title = new BC_Title(x1, y, _("Commands:")); add_subwindow(title); - y += title->get_h() + 8; + y += title->get_h() + yS(8); ShBtnPref *pref = sb_window->sb_dialog->pref; - cmd_name = new BC_TextBox(x, y, 140, 1, pref->name); + cmd_name = new BC_TextBox(x, y, xS(140), 1, pref->name); add_subwindow(cmd_name); - cmd_text = new BC_ScrollTextBox(this, x1, y, get_w()-x1-20, 4, pref->commands); + cmd_text = new BC_ScrollTextBox(this, x1, y, get_w()-x1-xS(20), 4, pref->commands); cmd_text->create_objects(); - y += cmd_text->get_h() + 16; + y += cmd_text->get_h() + yS(16); add_subwindow(title = new BC_Title(x1,y, _("OnExit Notify:"))); - x1 += title->get_w() + 10; + x1 += title->get_w() + xS(10); add_subwindow(st_err_warn = new ShBtnErrWarn(this, x1, y)); st_err_warn->create_objects(); - x1 += st_err_warn->get_w() + 20; + x1 += st_err_warn->get_w() + xS(20); add_subwindow(st_run_script = new ShBtnRunScript(this, x1, y)); - y = get_h() - ShBtnTextOK::calculate_h() - 10; + y = get_h() - ShBtnTextOK::calculate_h() - yS(10); add_subwindow(new ShBtnTextOK(this, x, y)); show_window(); unlock_window(); @@ -360,13 +362,13 @@ void ShBtnEditWindow::create_objects() for( int i=0; ishbtn_prefs.size(); ++i ) { shbtn_items.append(new ShBtnPrefItem(preferences->shbtn_prefs[i])); } - int x = 10, y = 10; + int x = xS(10), y = yS(10); add_subwindow(op_list = new ShBtnPrefList(this, x, y)); - x = 190; + x = xS(190); add_subwindow(add_button = new ShBtnAddButton(this, x, y)); - y += add_button->get_h() + 8; + y += add_button->get_h() + yS(8); add_subwindow(del_button = new ShBtnDelButton(this, x, y)); - y += del_button->get_h() + 8; + y += del_button->get_h() + yS(8); add_subwindow(edit_button = new ShBtnEditButton(this, x, y)); add_subwindow(new BC_OKButton(this)); show_window(); @@ -392,7 +394,7 @@ ShBtnPrefItem::~ShBtnPrefItem() } ShBtnPrefList::ShBtnPrefList(ShBtnEditWindow *sb_window, int x, int y) - : BC_ListBox(x, y, 140, 100, LISTBOX_TEXT, &sb_window->shbtn_items, 0, 0) + : BC_ListBox(x, y, xS(140), yS(100), LISTBOX_TEXT, &sb_window->shbtn_items, 0, 0) { this->sb_window = sb_window; } diff --git a/cinelerra-5.1/cinelerra/splashgui.C b/cinelerra-5.1/cinelerra/splashgui.C index e9e1840a..9b80bdbf 100644 --- a/cinelerra-5.1/cinelerra/splashgui.C +++ b/cinelerra-5.1/cinelerra/splashgui.C @@ -47,8 +47,8 @@ void SplashGUI::create_objects() draw_vframe(bg, 0, 0); flash(); show_window(); - operation = new BC_Title(5, - get_h() - get_text_height(MEDIUMFONT) - 5, + operation = new BC_Title(xS(5), + get_h() - get_text_height(MEDIUMFONT) - yS(5), _("Loading..."), MEDIUMFONT, GREEN); add_subwindow(operation); unlock_window(); diff --git a/cinelerra-5.1/cinelerra/statusbar.C b/cinelerra-5.1/cinelerra/statusbar.C index 13169c87..d27045b6 100644 --- a/cinelerra-5.1/cinelerra/statusbar.C +++ b/cinelerra-5.1/cinelerra/statusbar.C @@ -49,7 +49,7 @@ StatusBar::~StatusBar() void StatusBar::create_objects() { //printf("StatusBar::create_objects 1\n"); - int x = 10; //int y = 5; + int x = xS(10); //int y = 5; //printf("StatusBar::create_objects 1\n"); draw_top_background(get_parent(), 0, 0, get_w(), get_h()); add_subwindow(status_text = new BC_Title(mwindow->theme->mstatus_message_x, @@ -57,7 +57,7 @@ void StatusBar::create_objects() "", MEDIUMFONT, mwindow->theme->message_normal)); - x = get_w() - 290; + x = get_w() - xS(290); // printf("StatusBar::create_objects %d: 0x%08x\n", // __LINE__, mwindow->theme->message_normal); add_subwindow(main_progress = @@ -65,7 +65,7 @@ void StatusBar::create_objects() mwindow->theme->mstatus_progress_y, mwindow->theme->mstatus_progress_w, mwindow->theme->mstatus_progress_w)); - x += main_progress->get_w() + 5; + x += main_progress->get_w() + xS(5); //printf("StatusBar::create_objects 1\n"); add_subwindow(main_progress_cancel = new StatusBarCancel(mwindow, @@ -78,9 +78,7 @@ void StatusBar::create_objects() void StatusBar::resize_event() { - int x = 10; //int y = 1; - - + int x = xS(10); //int y = 1; reposition_window(mwindow->theme->mstatus_x, mwindow->theme->mstatus_y, mwindow->theme->mstatus_w, @@ -92,11 +90,11 @@ void StatusBar::resize_event() status_text->reposition_window(mwindow->theme->mstatus_message_x, mwindow->theme->mstatus_message_y); - x = get_w() - 290; + x = get_w() - xS(290); main_progress->reposition_window(mwindow->theme->mstatus_progress_x, mwindow->theme->mstatus_progress_y); - x += main_progress->get_w() + 5; + x += main_progress->get_w() + xS(5); main_progress_cancel->reposition_window(mwindow->theme->mstatus_cancel_x, mwindow->theme->mstatus_cancel_y); @@ -112,7 +110,7 @@ void StatusBar::show_message(const char *text, int msg_color, int box_color) set_color(box_color); int bb = th/4, bh = th - bb*2; draw_box(mx+bb,my+bb, bh,bh); - flash(mx,my, th,th); mx += 5; + flash(mx,my, th,th); mx += xS(5); if( (mx+=th) != tx ) status_text->reposition_window(mx, my); } diff --git a/cinelerra-5.1/cinelerra/swindow.C b/cinelerra-5.1/cinelerra/swindow.C index e7ab36c2..770556c6 100644 --- a/cinelerra-5.1/cinelerra/swindow.C +++ b/cinelerra-5.1/cinelerra/swindow.C @@ -73,7 +73,7 @@ int SWindowCancel::button_press_event() SWindowLoadPath::SWindowLoadPath(SWindowGUI *gui, int x, int y, char *path) - : BC_TextBox(x, y, 200, 1, path) + : BC_TextBox(x, y, xS(200), 1, path) { this->sw_gui = gui; } @@ -140,58 +140,58 @@ int SWindowSaveFile::handle_event() void SWindowGUI::create_objects() { lock_window("SWindowGUI::create_objects"); - int x = 10, y = 10; + int x = xS(10), y = yS(10); BC_Title *title = new BC_Title(x, y, _("Path:")); add_subwindow(title); - int x1 = x + title->get_w() + pad, y1 = y; + int x1 = x + title->get_w() + xpad, y1 = y; load_path = new SWindowLoadPath(this, x1, y1, script_path); add_subwindow(load_path); - x1 += load_path->get_w() + 2*pad; + x1 += load_path->get_w() + 2*xpad; add_subwindow(load_file = new SWindowLoadFile(this, x1, y1)); - x1 += load_file->get_w() + 2*pad; + x1 += load_file->get_w() + 2*xpad; add_subwindow(save_file = new SWindowSaveFile(this, x1, y1)); - y += max(load_path->get_h(), load_file->get_h()) + pad; - x1 = x + pad, y1 = y; + y += max(load_path->get_h(), load_file->get_h()) + ypad; + x1 = x + ypad, y1 = y; BC_Title *title1, *title2; add_subwindow(title1 = new BC_Title(x1, y1, _("File Size:"))); - y += title1->get_h() + pad; + y += title1->get_h() + ypad; int y2 = y; add_subwindow(title2 = new BC_Title(x1, y2, _("Entries:"))); - int x2 = x1 + max(title1->get_w(), title2->get_w()) + pad; + int x2 = x1 + max(title1->get_w(), title2->get_w()) + xpad; add_subwindow(script_filesz = new BC_Title(x2, y1, "0", MEDIUMFONT, YELLOW)); add_subwindow(script_entries = new BC_Title(x2, y2, "0", MEDIUMFONT, YELLOW)); - int x3 = x2 + max(script_entries->get_w()*8, script_filesz->get_w()*8) + pad; + int x3 = x2 + max(script_entries->get_w()*8, script_filesz->get_w()*8) + xpad; add_subwindow(title1 = new BC_Title(x3, y1, _("Lines:"))); add_subwindow(title2 = new BC_Title(x3, y2, _("Texts:"))); - int x4 = x3 + max(title1->get_w(), title2->get_w()) + pad; + int x4 = x3 + max(title1->get_w(), title2->get_w()) + xpad; add_subwindow(script_lines = new BC_Title(x4, y1, "0", MEDIUMFONT, YELLOW)); add_subwindow(script_texts = new BC_Title(x4, y2, "0", MEDIUMFONT, YELLOW)); - int x5 = x4 + max(script_lines->get_w()*8, script_texts->get_w()*8) + 2*pad; + int x5 = x4 + max(script_lines->get_w()*8, script_texts->get_w()*8) + 2*xpad; add_subwindow(prev_script = new ScriptPrev(this, x5, y1)); add_subwindow(next_script = new ScriptNext(this, x5, y2)); - int x6 = x5 + max(prev_script->get_w(), next_script->get_w()) + 2*pad; + int x6 = x5 + max(prev_script->get_w(), next_script->get_w()) + 2*xpad; add_subwindow(paste_script = new ScriptPaste(this, x6, y1)); add_subwindow(clear_script = new ScriptClear(this, x6, y2)); - y += max(title1->get_h(), title2->get_h()) + 2*pad; + y += max(title1->get_h(), title2->get_h()) + 2*ypad; - script_position = new ScriptPosition(this, x, y, 100); + script_position = new ScriptPosition(this, x, y, xS(100)); script_position->create_objects(); - x1 = x + script_position->get_w() + pad; - add_subwindow(script_scroll = new ScriptScroll(this, x1, y, get_w()-x1-pad)); - y += script_scroll->get_h() + 2*pad; - x1 = x + pad; + x1 = x + script_position->get_w() + xpad; + add_subwindow(script_scroll = new ScriptScroll(this, x1, y, get_w()-x1-xpad)); + y += script_scroll->get_h() + 2*ypad; + x1 = x + xpad; blank_line = new char[2]; blank_line[0] = ' '; blank_line[1] = 0; add_subwindow(script_title = new BC_Title(x1, y, _("Script Text:"))); - y += script_title->get_h() + pad; + y += script_title->get_h() + ypad; int rows = (ok_y - y - BC_Title::calculate_h(this,_("Line Text:")) - - 4*pad) / text_rowsz - 4; - int w1 = get_w() - x1 - pad; + 4*ypad) / text_rowsz - 4; + int w1 = get_w() - x1 - xpad; script_entry = new ScriptEntry(this, x1, y, w1, rows, blank_line); script_entry->create_objects(); - y += script_entry->get_h() + pad; + y += script_entry->get_h() + ypad; add_subwindow(line_title = new BC_Title(x1, y, _("Line Text:"))); - y += line_title->get_h() + pad; + y += line_title->get_h() + ypad; line_entry = new ScriptEntry(this, x1, y, w1, 4); line_entry->create_objects(); ok = new SWindowOK(this, ok_x, ok_y); @@ -236,22 +236,23 @@ void SWindowGUI::load() } SWindowGUI::SWindowGUI(SWindow *swindow, int x, int y, int w, int h) - : BC_Window(_(PROGRAM_NAME ": Subtitle"), x, y, w, h, 600, 500, + : BC_Window(_(PROGRAM_NAME ": Subtitle"), x, y, w, h, xS(600), yS(500), 1, 0, 0 , -1, swindow->mwindow->get_cwindow_display()) { this->swindow = swindow; - pad = 8; + xpad = xS(8); + ypad = yS(8); ok = 0; ok_w = BC_OKButton::calculate_w(); ok_h = BC_OKButton::calculate_h(); - ok_x = 10; - ok_y = h - ok_h - 10; + ok_x = xS(10); + ok_y = h - ok_h - yS(10); cancel = 0; cancel_w = BC_CancelButton::calculate_w(); cancel_h = BC_CancelButton::calculate_h(); - cancel_x = w - cancel_w - 10, - cancel_y = h - cancel_h - 10; + cancel_x = w - cancel_w - xS(10); + cancel_y = h - cancel_h - yS(10); load_path = 0; load_file = 0; @@ -305,29 +306,29 @@ int SWindowGUI::resize_event(int w, int h) swindow->mwindow->session->swindow_w = w; swindow->mwindow->session->swindow_h = h; - ok_x = 10; - ok_y = h - ok_h - 10; + ok_x = xS(10); + ok_y = h - ok_h - yS(10); ok->reposition_window(ok_x, ok_y); - cancel_x = w - cancel_w - 10, - cancel_y = h - cancel_h - 10; + cancel_x = w - cancel_w - xS(10); + cancel_y = h - cancel_h - yS(10); cancel->reposition_window(cancel_x, cancel_y); int x = script_position->get_x(); int y = script_position->get_y(); int hh = script_position->get_h(); int ww = script_position->get_w(); - int x1 = x + ww + pad; - int w1 = w - x1 - pad; + int x1 = x + ww + xpad; + int w1 = w - x1 - xpad; script_scroll->reposition_window(x1, y, w1); - y += hh + 2*pad; + y += hh + 2*ypad; script_title->reposition_window(x, y); - y += script_title->get_h() + pad; - w1 = w - x - pad; - int rows = (ok_y - y - line_title->get_h() - 4*pad) / text_rowsz - 4; + y += script_title->get_h() + ypad; + w1 = w - x - xpad; + int rows = (ok_y - y - line_title->get_h() - 4*ypad) / text_rowsz - 4; script_entry->reposition_window(x, y, w1, rows); - y += script_entry->get_h() + 2*pad; + y += script_entry->get_h() + 2*ypad; line_title->reposition_window(x, y); - y += line_title->get_h() + pad; + y += line_title->get_h() + ypad; line_entry->reposition_window(x, y, w1, 4); return 0; } @@ -924,8 +925,8 @@ void SWindow::run() int y = mwindow->session->swindow_y; int w = mwindow->session->swindow_w; int h = mwindow->session->swindow_h; - if( w < 600 ) w = 600; - if( h < 500 ) h = 500; + if( w < xS(600) ) w = xS(600); + if( h < yS(500) ) h = yS(500); int scr_x = mwindow->gui->get_screen_x(1, -1); int scr_w = mwindow->gui->get_screen_w(1, -1); if( x < scr_x ) x = scr_x; diff --git a/cinelerra-5.1/cinelerra/swindow.h b/cinelerra-5.1/cinelerra/swindow.h index 04e08b55..019e71d0 100644 --- a/cinelerra-5.1/cinelerra/swindow.h +++ b/cinelerra-5.1/cinelerra/swindow.h @@ -203,7 +203,7 @@ public: ScriptEntry *script_entry; ScriptEntry *line_entry; ScriptScroll *script_scroll; - int pad; + int xpad, ypad; char *blank_line; char script_path[BCTEXTLEN]; diff --git a/cinelerra-5.1/cinelerra/testwindow.C b/cinelerra-5.1/cinelerra/testwindow.C index 62f623b2..122103f7 100644 --- a/cinelerra-5.1/cinelerra/testwindow.C +++ b/cinelerra-5.1/cinelerra/testwindow.C @@ -5,7 +5,7 @@ TestWindowGUI:: TestWindowGUI() - : BC_Window("test", 100,100, 100,100, 100,100) + : BC_Window("test", xS(100),yS(100), xS(100),yS(100), xS(100),yS(100)) { in_motion = 0; last_x = last_y = -1; set_bg_color(BLACK); diff --git a/cinelerra-5.1/cinelerra/theme.C b/cinelerra-5.1/cinelerra/theme.C index 4141f08f..fb3ff4df 100644 --- a/cinelerra-5.1/cinelerra/theme.C +++ b/cinelerra-5.1/cinelerra/theme.C @@ -62,14 +62,14 @@ new VFrame(default_data.get_w(), default_data.get_h(), BC_RGBA8888) Theme::Theme() : BC_Theme() { - window_border = 10; - widget_border = 5; + window_border = xS(10); + widget_border = xS(5); this->mwindow = 0; theme_title = _(DEFAULT_THEME); last_image = 0; mtransport_margin = 0; toggle_margin = 0; - control_pixels = 50; + control_pixels = xS(50); timebar_cursor_color = RED; BC_WindowBase::get_resources()->bg_color = BLOND; @@ -77,14 +77,14 @@ Theme::Theme() BC_WindowBase::get_resources()->button_highlighted = 0xffe000; BC_WindowBase::get_resources()->recursive_resizing = 0; audio_color = BLACK; - fade_h = 22; + fade_h = yS(22); inout_highlight_color = GREEN; - meter_h = 17; - mode_h = 30; - pan_h = 32; - pan_x = 50; - play_h = 22; - title_h = 23; + meter_h = yS(17); + mode_h = yS(30); + pan_h = yS(32); + pan_x = xS(50); + play_h = yS(22); + title_h = yS(23); clock_bg_color = BLACK; clock_fg_color = GREEN; assetedit_color = YELLOW; @@ -93,8 +93,8 @@ Theme::Theme() preferences_category_overlap = 0; - loadmode_w = 350; - czoom_w = 110; + loadmode_w = xS(350); + czoom_w = xS(110); #include "data/about_bg_png.h" about_bg = new VFramePng(about_bg_png); @@ -600,18 +600,18 @@ void Theme::build_toggle(VFrame** &data, void Theme::get_mwindow_sizes(MWindowGUI *gui, int w, int h) { mbuttons_x = 0; - mbuttons_y = gui->menu_h() + 1; - mbuttons_w = w - (ffmpeg_toggle[0]->get_w()+2 + proxy_p_toggle[0]->get_w()+2); + mbuttons_y = gui->menu_h() + yS(1); + mbuttons_w = w - (ffmpeg_toggle[0]->get_w()+2 + proxy_p_toggle[0]->get_w()+xS(2)); mbuttons_h = get_image("mbutton_bg")->get_h(); - mclock_x = window_border - 5; - mclock_y = mbuttons_y - 1 + mbuttons_h; - mclock_w = get_image("clock_bg")->get_w() - 20; + mclock_x = window_border - xS(5); + mclock_y = mbuttons_y-1 + mbuttons_h; + mclock_w = get_image("clock_bg")->get_w() - xS(20); mclock_h = get_image("clock_bg")->get_h(); mtimebar_x = get_image("patchbay_bg")->get_w(); mtimebar_y = mbuttons_y - 1 + mbuttons_h; mtimebar_w = w - mtimebar_x; mtimebar_h = get_image("timebar_bg")->get_h(); - mzoom_h = 25; + mzoom_h = yS(25); mzoom_x = 0; mzoom_y = h - get_image("statusbar")->get_h(); mzoom_w = w; @@ -619,15 +619,15 @@ void Theme::get_mwindow_sizes(MWindowGUI *gui, int w, int h) mstatus_y = mzoom_y + mzoom_h; mstatus_w = w; mstatus_h = h - mstatus_y; - mstatus_message_x = 10; - mstatus_message_y = 5; - mstatus_progress_x = mstatus_w - statusbar_cancel_data[0]->get_w() - 240; - mstatus_progress_y = mstatus_h - BC_WindowBase::get_resources()->progress_images[0]->get_h() - 3; - mstatus_progress_w = 230; + mstatus_message_x = xS(10); + mstatus_message_y = yS(5); + mstatus_progress_x = mstatus_w - statusbar_cancel_data[0]->get_w() - xS(240); + mstatus_progress_y = mstatus_h - BC_WindowBase::get_resources()->progress_images[0]->get_h() - yS(3); + mstatus_progress_w = xS(230); mstatus_cancel_x = mstatus_w - statusbar_cancel_data[0]->get_w(); mstatus_cancel_y = mstatus_h - statusbar_cancel_data[0]->get_h(); mcanvas_x = 0; - mcanvas_y = mbuttons_y - 1 + mbuttons_h; + mcanvas_y = mbuttons_y-1 + mbuttons_h; mcanvas_w = w; mcanvas_h = mzoom_y - mtimebar_y; control_pixels = (mcanvas_w * control_pixels) / 1000; @@ -648,15 +648,8 @@ void Theme::get_mwindow_sizes(MWindowGUI *gui, int w, int h) } void Theme::get_pane_sizes(MWindowGUI *gui, - int *view_x, - int *view_y, - int *view_w, - int *view_h, - int number, - int x, - int y, - int w, - int h) + int *view_x, int *view_y, int *view_w, int *view_h, + int number, int x, int y, int w, int h) { *view_x = x; *view_y = y; @@ -711,9 +704,9 @@ void Theme::get_cwindow_sizes(CWindowGUI *gui, int cwindow_controls) int zoom_w = ZoomPanel::calculate_w(czoom_w); int status_w = get_image("cwindow_active")->get_w(); // Space between buttons & status icon - int division_w = 24; + int division_w = xS(24); - ctimebar_h = 16; + ctimebar_h = yS(16); if(cwindow_controls) { @@ -755,9 +748,9 @@ SET_TRACE czoom_x = ctransport_x + transport_w + widget_border; czoom_y = ctransport_y + widget_border; - cstatus_x = 426; + cstatus_x = xS(426); cstatus_y = mwindow->session->cwindow_h - - get_image("cwindow_active")->get_h() - 30; + get_image("cwindow_active")->get_h() - yS(30); } else { @@ -782,22 +775,15 @@ SET_TRACE } - ccomposite_x = 0; - ccomposite_y = 5; + ccomposite_x = xS(0); + ccomposite_y = yS(5); ccomposite_w = get_image("cpanel_bg")->get_w(); ccomposite_h = mwindow->session->cwindow_h - buttons_h; - - - - - - ccanvas_x = ccomposite_x + ccomposite_w; ccanvas_y = 0; ccanvas_h = ccomposite_h; - ccanvas_w = cmeter_x - ccanvas_x - widget_border; SET_TRACE } @@ -810,10 +796,10 @@ SET_TRACE ccomposite_w = get_image("cpanel_bg")->get_w(); ccomposite_h = mwindow->session->cwindow_h - get_image("cbuttons_left")->get_h(); - cedit_x = 10; - cedit_y = mwindow->session->cwindow_h + 17; - ctransport_x = 10; - ctransport_y = cedit_y + 40; + cedit_x = xS(10); + cedit_y = mwindow->session->cwindow_h + yS(17); + ctransport_x = xS(10); + ctransport_y = cedit_y + yS(40); ccanvas_x = 0; ccanvas_y = 0; ccanvas_w = mwindow->session->cwindow_w; @@ -934,10 +920,10 @@ void Theme::get_vwindow_sizes(VWindowGUI *gui) int edit_w = EditPanel::calculate_w(mwindow, 0, 10); int transport_w = PlayTransport::get_transport_width(mwindow) + toggle_margin; // Space between buttons & time - int division_w = 30; - vtime_w = 150; - vtimebar_h = 16; - int vtime_border = 15; + int division_w = xS(30); + vtime_w = xS(150); + vtimebar_h = yS(16); + int vtime_border = xS(15); vmeter_y = widget_border; vmeter_h = mwindow->session->vwindow_h - cmeter_y - widget_border; @@ -977,9 +963,9 @@ void Theme::get_vwindow_sizes(VWindowGUI *gui) get_image_set("autokeyframe")[0]->get_h() - widget_border; - vdivision_x = 280; - vtime_x = vedit_x + 20; //vdivision_x; - vtime_y = vedit_y + 30; //+ 20; + vdivision_x = xS(280); + vtime_x = vedit_x + xS(20); //vdivision_x; + vtime_y = vedit_y + yS(30); //+ yS(20); } else { @@ -1024,10 +1010,10 @@ void Theme::get_awindow_sizes(AWindowGUI *gui) afolders_w = mwindow->session->afolders_w; afolders_h = mwindow->session->awindow_h - afolders_y; adivider_x = afolders_x + afolders_w; - adivider_y = 0; - adivider_w = 5; + adivider_y = xS(0); + adivider_w = yS(5); adivider_h = afolders_h; - alist_x = afolders_x + afolders_w + 5; + alist_x = afolders_x + afolders_w + xS(5); alist_y = afolders_y; alist_w = mwindow->session->awindow_w - alist_x; alist_h = afolders_h; @@ -1040,14 +1026,14 @@ void Theme::get_rmonitor_sizes(int do_audio, int do_avc, int audio_channels) { - int x = 10; - int y = 3; + int x = xS(10); + int y = yS(3); if(do_avc) { - rmonitor_canvas_y = 30; - rmonitor_tx_x = 10; + rmonitor_canvas_y = yS(30); + rmonitor_tx_x = xS(10); rmonitor_tx_y = 0; } else @@ -1060,16 +1046,16 @@ void Theme::get_rmonitor_sizes(int do_audio, if(do_channel) { - y = 5; + y = yS(5); rmonitor_channel_x = x; - rmonitor_channel_y = 5; - x += 280; - rmonitor_canvas_y = 35; + rmonitor_channel_y = yS(5); + x += xS(280); + rmonitor_canvas_y = yS(35); } if(do_interlace) { - y = 4; + y = yS(4); rmonitor_interlace_x = x; rmonitor_interlace_y = y; } @@ -1089,8 +1075,8 @@ void Theme::get_rmonitor_sizes(int do_audio, rmonitor_meter_w = mwindow->session->rmonitor_w - widget_border * 2; } - rmonitor_meter_y = 40; - rmonitor_meter_h = mwindow->session->rmonitor_h - 10 - rmonitor_meter_y; + rmonitor_meter_y = yS(40); + rmonitor_meter_h = mwindow->session->rmonitor_h - yS(10) - rmonitor_meter_y; } else { @@ -1099,13 +1085,13 @@ void Theme::get_rmonitor_sizes(int do_audio, rmonitor_canvas_x = 0; rmonitor_canvas_w = rmonitor_meter_x - rmonitor_canvas_x; - if(do_audio) rmonitor_canvas_w -= 10; + if(do_audio) rmonitor_canvas_w -= xS(10); rmonitor_canvas_h = mwindow->session->rmonitor_h - rmonitor_canvas_y; if(!do_video && do_audio) { - rmonitor_meter_y -= 30; - rmonitor_meter_h += 30; + rmonitor_meter_y -= yS(30); + rmonitor_meter_h += yS(30); } } @@ -1118,14 +1104,16 @@ void Theme::get_batchrender_sizes(BatchRenderGUI *gui, int w, int h) { - batchrender_x1 = 10; - batchrender_x2 = 300; - batchrender_x3 = 400; + batchrender_x1 = xS(10); + batchrender_x2 = xS(300); + batchrender_x3 = xS(400); } void Theme::get_plugindialog_sizes() { - int x = 10, y = 30; + int xs10 = xS(10), ys10 = yS(10); + int xs20 = xS(20), ys100 = yS(100); + int x = xs10, y = yS(30); plugindialog_new_x = x; plugindialog_new_y = y; plugindialog_shared_x = mwindow->session->plugindialog_w / 3; @@ -1133,19 +1121,19 @@ void Theme::get_plugindialog_sizes() plugindialog_module_x = mwindow->session->plugindialog_w * 2 / 3; plugindialog_module_y = y; - plugindialog_new_w = plugindialog_shared_x - plugindialog_new_x - 10; - plugindialog_new_h = mwindow->session->plugindialog_h - 100; - plugindialog_shared_w = plugindialog_module_x - plugindialog_shared_x - 10; - plugindialog_shared_h = mwindow->session->plugindialog_h - 100; - plugindialog_module_w = mwindow->session->plugindialog_w - plugindialog_module_x - 10; - plugindialog_module_h = mwindow->session->plugindialog_h - 100; - - plugindialog_newattach_x = plugindialog_new_x + 20; - plugindialog_newattach_y = plugindialog_new_y + plugindialog_new_h + 10; - plugindialog_sharedattach_x = plugindialog_shared_x + 20; - plugindialog_sharedattach_y = plugindialog_shared_y + plugindialog_shared_h + 10; - plugindialog_moduleattach_x = plugindialog_module_x + 20; - plugindialog_moduleattach_y = plugindialog_module_y + plugindialog_module_h + 10; + plugindialog_new_w = plugindialog_shared_x - plugindialog_new_x - xs10; + plugindialog_new_h = mwindow->session->plugindialog_h - ys100; + plugindialog_shared_w = plugindialog_module_x - plugindialog_shared_x - xs10; + plugindialog_shared_h = mwindow->session->plugindialog_h - ys100; + plugindialog_module_w = mwindow->session->plugindialog_w - plugindialog_module_x - xs10; + plugindialog_module_h = mwindow->session->plugindialog_h - ys100; + + plugindialog_newattach_x = plugindialog_new_x + xs20; + plugindialog_newattach_y = plugindialog_new_y + plugindialog_new_h + ys10; + plugindialog_sharedattach_x = plugindialog_shared_x + xs20; + plugindialog_sharedattach_y = plugindialog_shared_y + plugindialog_shared_h + ys10; + plugindialog_moduleattach_x = plugindialog_module_x + xs20; + plugindialog_moduleattach_y = plugindialog_module_y + plugindialog_module_h + ys10; } // void Theme::get_presetdialog_sizes(PresetsWindow *gui) @@ -1291,26 +1279,26 @@ void Theme::get_menueffect_sizes(int use_list) { if(use_list) { - menueffect_list_x = 10; - menueffect_list_y = 10; - menueffect_list_w = mwindow->session->menueffect_w - 400; + menueffect_list_x = xS(10); + menueffect_list_y = yS(10); + menueffect_list_w = mwindow->session->menueffect_w - xS(400); menueffect_list_h = mwindow->session->menueffect_h - menueffect_list_y - - BC_OKButton::calculate_h() - 10; + BC_OKButton::calculate_h() - yS(10); } else { menueffect_list_x = 0; - menueffect_list_y = 10; + menueffect_list_y = yS(10); menueffect_list_w = 0; menueffect_list_h = 0; } - menueffect_file_x = menueffect_list_x + menueffect_list_w + 10; - menueffect_file_y = 10; + menueffect_file_x = menueffect_list_x + menueffect_list_w + xS(10); + menueffect_file_y = yS(10); menueffect_tools_x = menueffect_file_x; - menueffect_tools_y = menueffect_file_y + 20; + menueffect_tools_y = menueffect_file_y + yS(20); } void Theme::get_preferences_sizes() diff --git a/cinelerra-5.1/cinelerra/timebar.C b/cinelerra-5.1/cinelerra/timebar.C index 44e32172..7dfc7c01 100644 --- a/cinelerra-5.1/cinelerra/timebar.C +++ b/cinelerra-5.1/cinelerra/timebar.C @@ -277,20 +277,16 @@ void TimeBar::update_labels() // Create new label if( output >= labels.total ) { LabelGUI *new_label; - add_subwindow(new_label = - new LabelGUI(mwindow, - this, - pixel, - LabelGUI::get_y(mwindow, this), + add_subwindow(new_label = new LabelGUI(mwindow, this, + pixel, LabelGUI::get_y(mwindow, this), current->position)); new_label->set_cursor(INHERIT_CURSOR, 0, 0); new_label->set_tooltip(current->textstr); new_label->label = current; labels.append(new_label); } - else // Reposition old label - { + else { LabelGUI *gui = labels.values[output]; if( gui->pixel != pixel ) { gui->pixel = pixel; @@ -362,7 +358,7 @@ void TimeBar::draw_inout_highlight() CLAMP(in_x, 0, get_w()); CLAMP(out_x, 0, get_w()); set_color(mwindow->theme->inout_highlight_color); - int lw = 5; + int lw = xS(5); set_line_width(lw); set_inverse(); draw_line(in_x, get_h()-2*lw, out_x, get_h()-2*lw); @@ -537,14 +533,10 @@ EDL* TimeBar::get_edl() void TimeBar::draw_range() { - - //printf("TimeBar::draw_range %d %p\n", __LINE__, get_edl()); if( has_preview() && get_edl() ) { int x1, x2; get_preview_pixels(x1, x2); - -//printf("TimeBar::draw_range %f %d %d\n", edl_length, x1, x2); draw_3segmenth(0, 0, x1, mwindow->theme->timebar_view_data); draw_top_background(get_parent(), x1, 0, x2 - x1, get_h()); draw_3segmenth(x2, 0, get_w() - x2, mwindow->theme->timebar_view_data); @@ -941,8 +933,6 @@ int TimeBar::select_region(double position) } - - int TimeBar::delete_arrows() { return 0; diff --git a/cinelerra-5.1/cinelerra/tipwindow.C b/cinelerra-5.1/cinelerra/tipwindow.C index e367964f..df0e6f6f 100644 --- a/cinelerra-5.1/cinelerra/tipwindow.C +++ b/cinelerra-5.1/cinelerra/tipwindow.C @@ -117,7 +117,7 @@ void TipWindow::prev_tip() TipWindowGUI::TipWindowGUI(MWindow *mwindow, TipWindow *thread, int x, int y) : BC_Window(_(PROGRAM_NAME ": Tip of the day"), x, y, - 640, 100, 640, 100, 0, 0, 1) + xS(640), yS(100), xS(640), yS(100), 0, 0, 1) { this->mwindow = mwindow; this->thread = thread; @@ -126,20 +126,21 @@ TipWindowGUI::TipWindowGUI(MWindow *mwindow, TipWindow *thread, int x, int y) void TipWindowGUI::create_objects() { lock_window("TipWindowGUI::create_objects"); - int x = 10, y = 10; + int xs10 = xS(10), ys10 = yS(10), ys30 = yS(30); + int x = xs10, y = ys10; add_subwindow(tip_text = new BC_Title(x, y, thread->get_current_tip(1))); - y = get_h() - 30; + y = get_h() - ys30; BC_CheckBox *checkbox; add_subwindow(checkbox = new TipDisable(mwindow, this, x, y)); BC_Button *button; - y = get_h() - TipClose::calculate_h(mwindow) - 10; - x = get_w() - TipClose::calculate_w(mwindow) - 10; + y = get_h() - TipClose::calculate_h(mwindow) - ys10; + x = get_w() - TipClose::calculate_w(mwindow) - xs10; add_subwindow(button = new TipClose(mwindow, this, x, y)); - x -= TipNext::calculate_w(mwindow) + 10; + x -= TipNext::calculate_w(mwindow) + xs10; add_subwindow(button = new TipNext(mwindow, this, x, y)); - x -= TipPrev::calculate_w(mwindow) + 10; + x -= TipPrev::calculate_w(mwindow) + xs10; add_subwindow(button = new TipPrev(mwindow, this, x, y)); - x += button->get_w() + 10; + x += button->get_w() + xs10; show_window(); raise_window(); diff --git a/cinelerra-5.1/cinelerra/trackcanvas.C b/cinelerra-5.1/cinelerra/trackcanvas.C index 771b88e7..f89bdab5 100644 --- a/cinelerra-5.1/cinelerra/trackcanvas.C +++ b/cinelerra-5.1/cinelerra/trackcanvas.C @@ -1315,29 +1315,22 @@ void TrackCanvas::draw_highlight_rectangle(int x, int y, int w, int h) if (x + w <= 0) { - draw_triangle_left(0, y + h /6, h * 2/3, h * 2/3, BLACK, GREEN, YELLOW, RED, BLUE); + draw_triangle_left(0, y + h /6, + h * 2/3, h * 2/3, BLACK, GREEN, YELLOW, RED, BLUE); return; } else if (x >= get_w()) { - draw_triangle_right(get_w() - h * 2/3, y + h /6, h * 2/3, h * 2/3, BLACK, GREEN, YELLOW, RED, BLUE); + draw_triangle_right(get_w() - h * 2/3, y + h /6, + h * 2/3, h * 2/3, BLACK, GREEN, YELLOW, RED, BLUE); return; } // Fix bug in heroines & cvs version as of 22.8.2005: // If we grab when zoomed in and zoom out while dragging, when edit gets really narrow strange things start happening if (w >= 0 && w < 3) {x -= w /2; w = 3;}; - if(x < -10) - { - w += x - -10; - x = -10; - } - - if(y < -10) - { - h += y - -10; - y = -10; - } + if(x < -10) { w += x - -10; x = -10; } + if(y < -10) { h += y - -10; y = -10; } w = MIN(w, get_w() + 20); h = MIN(h, get_h() + 20); @@ -1393,16 +1386,8 @@ void TrackCanvas::draw_highlight_insertion(int x, int y, int w, int h) // Fix bug in heroines & cvs version as of 22.8.2005: // If we grab when zoomed in and zoom out while dragging, when edit gets really narrow strange things start happening if (w >= 0 && w < 3) {x -= w /2; w = 3;}; - if(x < -10) - { - w += x - -10; - x = -10; - } - if(y < -10) - { - h += y - -10; - y = -10; - } + if(x < -10) { w += x - -10; x = -10; } + if(y < -10) { h += y - -10; y = -10; } w = MIN(w, get_w() + 20); h = MIN(h, get_h() + 20); set_color(mwindow->preferences->highlight_inverse); @@ -1443,7 +1428,7 @@ void TrackCanvas::get_handle_coords(Edit *edit, int64_t &x, int64_t &y, int64_t void TrackCanvas::get_transition_coords(Edit *edit, int64_t &x, int64_t &y, int64_t &w, int64_t &h) { - int transition_w = 30, transition_h = 30; + int transition_w = xS(30), transition_h = yS(30); int has_titles = edit->track->show_titles(); int has_assets = edit->track->show_assets(); double title_bg_h = mwindow->theme->get_image("title_bg_data")->get_h(); @@ -1801,7 +1786,7 @@ void TrackCanvas::draw_plugins() toggle_x = MIN(get_w() - right_margin, toggle_x); // On toggle - toggle_x -= PluginOn::calculate_w(mwindow) + 10; + toggle_x -= PluginOn::calculate_w(mwindow) + xS(10); if(toggle_x > min_x) { if(current_on >= plugin_on_toggles.total) @@ -1821,7 +1806,7 @@ void TrackCanvas::draw_plugins() if(plugin->plugin_type == PLUGIN_STANDALONE) { // Show - toggle_x -= PluginShow::calculate_w(mwindow) + 10; + toggle_x -= PluginShow::calculate_w(mwindow) + xS(10); if(toggle_x > min_x) { if(current_show >= plugin_show_toggles.total) @@ -1836,7 +1821,7 @@ void TrackCanvas::draw_plugins() } current_show++; } - toggle_x -= PluginPresetEdit::calculate_w(mwindow) + 10; + toggle_x -= PluginPresetEdit::calculate_w(mwindow) + xS(10); if(toggle_x > min_x) { if(current_preset >= preset_edit_buttons.total) @@ -1991,19 +1976,19 @@ void TrackCanvas::draw_drag_handle() edit_dimensions(edit, x, y, w, h); if( y+h < 0 || y >= get_h() ) continue; int edge_x = !drag_handle ? x : x + w; - int edge_y = y + h/2, k = 10; + int edge_y = y + h/2, xs10 = xS(10), ys10 = yS(10); if( edge_x >= 0 && edge_x < get_w() ) { if( !can_drag ) { - draw_line(edge_x-k,edge_y-k, edge_x+k,edge_y+k); - draw_line(edge_x-k,edge_y+k, edge_x+k,edge_y-k); + draw_line(edge_x-xs10,edge_y-ys10, edge_x+xs10,edge_y+ys10); + draw_line(edge_x-xs10,edge_y+ys10, edge_x+xs10,edge_y-ys10); } else if( !drag_handle ) { - draw_line(edge_x+k,edge_y-k, edge_x,edge_y); - draw_line(edge_x+k,edge_y+k, edge_x,edge_y); + draw_line(edge_x+xs10,edge_y-ys10, edge_x,edge_y); + draw_line(edge_x+xs10,edge_y+ys10, edge_x,edge_y); } else { - draw_line(edge_x,edge_y, edge_x-k,edge_y-k); - draw_line(edge_x,edge_y, edge_x-k,edge_y+k); + draw_line(edge_x,edge_y, edge_x-xs10,edge_y-ys10); + draw_line(edge_x,edge_y, edge_x-xs10,edge_y+ys10); } } edge_x += delta; @@ -3688,8 +3673,8 @@ int TrackCanvas::draw_hairline(Auto *auto_keyframe, int color, int show) } if( show ) { int font = MEDIUMFONT; - int tw = get_text_width(font, text) + TOOLTIP_MARGIN * 2; - int th = get_text_height(font, text) + TOOLTIP_MARGIN * 2; + int tw = get_text_width(font, text) + xS(TOOLTIP_MARGIN) * 2; + int th = get_text_height(font, text) + yS(TOOLTIP_MARGIN) * 2; set_color(get_resources()->tooltip_bg_color); ax += HANDLE_W/2; ay += center_pixel + HANDLE_W/2; @@ -3697,8 +3682,8 @@ int TrackCanvas::draw_hairline(Auto *auto_keyframe, int color, int show) set_color(BLACK); draw_rectangle(ax, ay, tw, th); set_font(font); - ax += TOOLTIP_MARGIN; - ay += TOOLTIP_MARGIN + get_text_ascent(font); + ax += xS(TOOLTIP_MARGIN); + ay += yS(TOOLTIP_MARGIN) + get_text_ascent(font); draw_text(ax, ay, text); } return 0; @@ -3709,13 +3694,7 @@ void TrackCanvas::draw_overlays() int new_cursor, update_cursor, rerender; // Move background pixmap to foreground pixmap - draw_pixmap(background_pixmap, - 0, - 0, - get_w(), - get_h(), - 0, - 0); + draw_pixmap(background_pixmap, 0, 0, get_w(), get_h(), 0, 0); // In/Out points draw_inout_points(); diff --git a/cinelerra-5.1/cinelerra/trackcanvas.inc b/cinelerra-5.1/cinelerra/trackcanvas.inc index 96c6c8c5..6898b163 100644 --- a/cinelerra-5.1/cinelerra/trackcanvas.inc +++ b/cinelerra-5.1/cinelerra/trackcanvas.inc @@ -24,8 +24,8 @@ class TrackCanvas; -#define HANDLE_W 8 -#define HANDLE_H 8 +#define HANDLE_W xS(8) +#define HANDLE_H yS(8) // draw mode: // NO_DRAW used in MWindowGUI/TimelinePane update to disable canvas update diff --git a/cinelerra-5.1/cinelerra/trackpopup.C b/cinelerra-5.1/cinelerra/trackpopup.C index f6f0e315..e914bf74 100644 --- a/cinelerra-5.1/cinelerra/trackpopup.C +++ b/cinelerra-5.1/cinelerra/trackpopup.C @@ -279,12 +279,15 @@ TrackPopupUserTitle::~TrackPopupUserTitle() delete dialog_thread; } +#define TTW_W xS(300) +#define TTW_H yS(130) + int TrackPopupUserTitle::handle_event() { if( popup->edit ) { dialog_thread->close_window(); - int wx = mwindow->gui->get_abs_cursor_x(0) - 400 / 2; - int wy = mwindow->gui->get_abs_cursor_y(0) - 500 / 2; + int wx = mwindow->gui->get_abs_cursor_x(0) - TTW_W / 2; + int wy = mwindow->gui->get_abs_cursor_y(0) - TTW_H / 2; dialog_thread->start(wx, wy); } return 1; @@ -350,7 +353,7 @@ void TrackUserTitleDialogThread::handle_done_event(int result) TrackPopupUserTitleWindow::TrackPopupUserTitleWindow(MWindow *mwindow, TrackPopup *popup, int wx, int wy) : BC_Window(_(PROGRAM_NAME ": Set edit title"), wx, wy, - 300, 130, 300, 130, 0, 0, 1) + TTW_W, TTW_H, TTW_W, TTW_H, 0, 0, 1) { this->mwindow = mwindow; this->popup = popup; @@ -364,9 +367,9 @@ TrackPopupUserTitleWindow::~TrackPopupUserTitleWindow() void TrackPopupUserTitleWindow::create_objects() { lock_window("TrackPopupUserTitleWindow::create_objects"); - int x = 10, y = 10, x1; + int x = xS(10), y = yS(10), x1; BC_Title *title = new BC_Title(x1=x, y, _("User title:")); - add_subwindow(title); x1 += title->get_w() + 10; + add_subwindow(title); x1 += title->get_w() + xS(10); title_text = new TrackPopupUserTitleText(this, mwindow, x1, y, new_text); add_subwindow(title_text); @@ -382,7 +385,7 @@ void TrackPopupUserTitleWindow::create_objects() TrackPopupUserTitleText::TrackPopupUserTitleText(TrackPopupUserTitleWindow *window, MWindow *mwindow, int x, int y, const char *text) - : BC_TextBox(x, y, window->get_w()-x-15, 1, text) + : BC_TextBox(x, y, window->get_w()-x-xS(15), 1, text) { this->window = window; this->mwindow = mwindow; @@ -451,9 +454,9 @@ TrackTitleColorPicker::~TrackTitleColorPicker() } void TrackTitleColorPicker::create_objects(ColorWindow *gui) { - int y = gui->get_h() - BC_CancelButton::calculate_h() + 10; - int x = gui->get_w() - BC_CancelButton::calculate_w() - 10; - x -= BC_GenericButton::calculate_w(gui, _("default")) + 15; + int y = gui->get_h() - BC_CancelButton::calculate_h() + yS(10); + int x = gui->get_w() - BC_CancelButton::calculate_w() - xS(10); + x -= BC_GenericButton::calculate_w(gui, _("default")) + xS(15); gui->add_subwindow(new TrackTitleColorDefault(this, x, y)); } @@ -488,6 +491,9 @@ void TrackTitleColorPicker::handle_done_event(int result) } +#define TPW_W xS(300) +#define TPW_H yS(220) + TrackPopupShow::TrackPopupShow(MWindow *mwindow, TrackPopup *popup) : BC_MenuItem(_("Show edit")) { @@ -505,8 +511,8 @@ int TrackPopupShow::handle_event() { if( popup->edit ) { dialog_thread->close_window(); - int wx = mwindow->gui->get_abs_cursor_x(0) - 400 / 2; - int wy = mwindow->gui->get_abs_cursor_y(0) - 500 / 2; + int wx = mwindow->gui->get_abs_cursor_x(0) - TPW_W / 2; + int wy = mwindow->gui->get_abs_cursor_y(0) - TPW_H / 2; dialog_thread->start(wx, wy); } return 1; @@ -545,7 +551,7 @@ void TrackShowDialogThread::handle_close_event(int result) TrackPopupShowWindow::TrackPopupShowWindow(MWindow *mwindow, TrackPopup *popup, int wx, int wy) : BC_Window(_(PROGRAM_NAME ": Show edit"), wx, wy, - 300, 220, 300, 220, 0, 0, 1) + TPW_W, TPW_H, TPW_W, TPW_H, 0, 0, 1) { this->mwindow = mwindow; this->popup = popup; @@ -558,15 +564,15 @@ TrackPopupShowWindow::~TrackPopupShowWindow() void TrackPopupShowWindow::create_objects() { lock_window("TrackPopupShowWindow::create_objects"); - int x = 10, y = 10; + int x = xS(10), y = yS(10); BC_Title *title; char text[BCTEXTLEN]; Edit *edit = popup->edit; Track *track = edit->track; sprintf(text, _("Track %d:"), mwindow->edl->tracks->number_of(track)+1); add_subwindow(title = new BC_Title(x, y, text)); - int x1 = x + title->get_w() + 10; - int tw = get_w() - x1 - 20; + int x1 = x + title->get_w() + xS(10); + int tw = get_w() - x1 - xS(20); truncate_text(text, track->title, tw); add_subwindow(new BC_Title(x1, y, text)); y += title->get_h() + 5; @@ -598,7 +604,7 @@ void TrackPopupShowWindow::create_objects() time_format, sample_rate, frame_rate, frames_per_foot), Units::totext(text_length, length, time_format, sample_rate, frame_rate, frames_per_foot)); - show_text = new TrackPopupShowText(this, mwindow, x+15, y+10, text); + show_text = new TrackPopupShowText(this, mwindow, x+xS(15), y+yS(10), text); add_subwindow(show_text); add_tool(new BC_OKButton(this)); @@ -610,7 +616,7 @@ void TrackPopupShowWindow::create_objects() TrackPopupShowText::TrackPopupShowText(TrackPopupShowWindow *window, MWindow *mwindow, int x, int y, const char *text) - : BC_TextBox(x, y, 250, 4, text) + : BC_TextBox(x, y, xS(250), 4, text) { this->window = window; this->mwindow = mwindow; diff --git a/cinelerra-5.1/cinelerra/transitionpopup.C b/cinelerra-5.1/cinelerra/transitionpopup.C index 115a2f1d..ff19113b 100644 --- a/cinelerra-5.1/cinelerra/transitionpopup.C +++ b/cinelerra-5.1/cinelerra/transitionpopup.C @@ -53,11 +53,14 @@ void TransitionLengthThread::start(Transition *transition, double length) BC_DialogThread::start(); } +#define TLW_W xS(300) +#define TLW_H yS(100) + BC_Window* TransitionLengthThread::new_gui() { BC_DisplayInfo display_info; - int x = display_info.get_abs_cursor_x() - 150; - int y = display_info.get_abs_cursor_y() - 50; + int x = display_info.get_abs_cursor_x() - TLW_W / 2; + int y = display_info.get_abs_cursor_y() - TLW_H / 2; TransitionLengthDialog *gui = new TransitionLengthDialog(mwindow, this, x, y); gui->create_objects(); return gui; @@ -120,7 +123,7 @@ int TransitionUnitsItem::handle_event() } TransitionUnitsPopup::TransitionUnitsPopup(TransitionLengthDialog *gui, int x, int y) - : BC_PopupMenu(x, y, 120, "", 1) + : BC_PopupMenu(x, y, xS(120), "", 1) { this->gui = gui; units = TIME_SECONDS; @@ -145,7 +148,7 @@ void TransitionUnitsPopup::create_objects() TransitionLengthDialog::TransitionLengthDialog(MWindow *mwindow, TransitionLengthThread *thread, int x, int y) : BC_Window(_(PROGRAM_NAME ": Transition length"), x, y, - 300, 100, -1, -1, 0, 0, 1) + TLW_W, TLW_H, -1, -1, 0, 0, 1) { this->mwindow = mwindow; this->thread = thread; @@ -159,9 +162,9 @@ TransitionLengthDialog::~TransitionLengthDialog() void TransitionLengthDialog::create_objects() { lock_window("TransitionLengthDialog::create_objects"); - add_subwindow(units_popup = new TransitionUnitsPopup(this, 10, 10)); + add_subwindow(units_popup = new TransitionUnitsPopup(this, xS(10), yS(10))); units_popup->create_objects(); - text = new TransitionLengthText(mwindow, this, 160, 10); + text = new TransitionLengthText(mwindow, this, xS(160), yS(10)); text->create_objects(); text->set_precision(3); text->set_increment(0.1); @@ -181,7 +184,7 @@ int TransitionLengthDialog::close_event() TransitionLengthText::TransitionLengthText(MWindow *mwindow, TransitionLengthDialog *gui, int x, int y) : BC_TumbleTextBox(gui, (float)gui->thread->new_length, - 0.f, 100.f, x, y, 100) + 0.f, 100.f, x, y, xS(100)) { this->mwindow = mwindow; this->gui = gui; diff --git a/cinelerra-5.1/cinelerra/vdeviceprefs.C b/cinelerra-5.1/cinelerra/vdeviceprefs.C index d20c0587..fbd96978 100644 --- a/cinelerra-5.1/cinelerra/vdeviceprefs.C +++ b/cinelerra-5.1/cinelerra/vdeviceprefs.C @@ -120,11 +120,8 @@ int VDevicePrefs::initialize(int creation) if(!menu) { - dialog->add_subwindow(menu = new VDriverMenu(x, - y + 10, - this, - (mode == MODERECORD), - driver)); + dialog->add_subwindow(menu = new VDriverMenu(x, y + yS(10), + this, (mode == MODERECORD), driver)); menu->create_objects(); } @@ -211,23 +208,23 @@ int VDevicePrefs::get_h() void VDevicePrefs::create_dvb_objs() { - int x1 = x + menu->get_w() + 30; - int y1 = y + 10; + int x1 = x + menu->get_w() + xS(30); + int y1 = y + yS(10); char *output_char = in_config->dvb_in_adapter; - int y2 = y1 - BC_Title::calculate_h(dialog, _("DVB Adapter:"), MEDIUMFONT) - 5; + int y2 = y1 - BC_Title::calculate_h(dialog, _("DVB Adapter:"), MEDIUMFONT) - yS(5); BC_Resources *resources = BC_WindowBase::get_resources(); dvb_adapter_title = new BC_Title(x1, y2, _("DVB Adapter:"), MEDIUMFONT, resources->text_default); dialog->add_subwindow(dvb_adapter_title); dialog->add_subwindow(device_text = new VDeviceTextBox(x1, y1, output_char)); - int x2 = x1 + device_text->get_w() + 5; + int x2 = x1 + device_text->get_w() + xS(5); device_title = new BC_Title(x2, y2, _("dev:"), MEDIUMFONT, resources->text_default); dialog->add_subwindow(device_title); int *output_int = &in_config->dvb_in_device; - dvb_adapter_device = new VDeviceTumbleBox(this, x2, y1, output_int, 0, 9, 20); + dvb_adapter_device = new VDeviceTumbleBox(this, x2, y1, output_int, 0, 9, xS(20)); dvb_adapter_device->create_objects(); - x1 += 64; y1 += device_text->get_h() + 5; + x1 += xS(64); y1 += device_text->get_h() + yS(5); follow_video_config = new BC_CheckBox(x1, y1, &in_config->follow_video, _("Follow video config")); dialog->add_subwindow(follow_video_config); @@ -235,9 +232,10 @@ void VDevicePrefs::create_dvb_objs() int VDevicePrefs::create_firewire_objs() { + int xs5 = xS(5), ys20 = yS(20); int *output_int = 0; char *output_char = 0; - int x1 = x + menu->get_w() + 5; + int x1 = x + menu->get_w() + xS(5); BC_Resources *resources = BC_WindowBase::get_resources(); // Firewire path @@ -259,8 +257,8 @@ int VDevicePrefs::create_firewire_objs() if(output_char) { dialog->add_subwindow(device_title = new BC_Title(x1, y, _("Device Path:"), MEDIUMFONT, resources->text_default)); - dialog->add_subwindow(firewire_path = new VDeviceTextBox(x1, y + 20, output_char)); - x1 += firewire_path->get_w() + 5; + dialog->add_subwindow(firewire_path = new VDeviceTextBox(x1, y + ys20, output_char)); + x1 += firewire_path->get_w() + xs5; } // Firewire port @@ -277,8 +275,8 @@ int VDevicePrefs::create_firewire_objs() break; } dialog->add_subwindow(port_title = new BC_Title(x1, y, _("Port:"), MEDIUMFONT, resources->text_default)); - dialog->add_subwindow(firewire_port = new VDeviceIntBox(x1, y + 20, output_int)); - x1 += firewire_port->get_w() + 5; + dialog->add_subwindow(firewire_port = new VDeviceIntBox(x1, y + ys20, output_int)); + x1 += firewire_port->get_w() + xs5; // Firewire channel switch(mode) @@ -295,8 +293,8 @@ int VDevicePrefs::create_firewire_objs() } dialog->add_subwindow(channel_title = new BC_Title(x1, y, _("Channel:"), MEDIUMFONT, resources->text_default)); - dialog->add_subwindow(firewire_channel = new VDeviceIntBox(x1, y + 20, output_int)); - x1 += firewire_channel->get_w() + 5; + dialog->add_subwindow(firewire_channel = new VDeviceIntBox(x1, y + ys20, output_int)); + x1 += firewire_channel->get_w() + xs5; // Firewire syt @@ -318,7 +316,7 @@ int VDevicePrefs::create_firewire_objs() if(output_int) { dialog->add_subwindow(syt_title = new BC_Title(x1, y, _("Syt Offset:"), MEDIUMFONT, resources->text_default)); - dialog->add_subwindow(firewire_syt = new VDeviceIntBox(x1, y + 20, output_int)); + dialog->add_subwindow(firewire_syt = new VDeviceIntBox(x1, y + ys20, output_int)); } return 0; @@ -326,28 +324,30 @@ int VDevicePrefs::create_firewire_objs() int VDevicePrefs::create_v4l2_objs() { + int xs5 = xS(5), ys20 = yS(20); char *output_char; BC_Resources *resources = BC_WindowBase::get_resources(); - int x1 = x + menu->get_w() + 5; + int x1 = x + menu->get_w() + xs5; output_char = pwindow->thread->edl->session->vconfig_in->v4l2_in_device; dialog->add_subwindow(device_title = new BC_Title(x1, y, _("Device path:"), MEDIUMFONT, resources->text_default)); - dialog->add_subwindow(device_text = new VDeviceTextBox(x1, y + 20, output_char)); + dialog->add_subwindow(device_text = new VDeviceTextBox(x1, y + ys20, output_char)); return 0; } int VDevicePrefs::create_v4l2jpeg_objs() { + int xs5 = xS(5), ys20 = yS(20); BC_Resources *resources = BC_WindowBase::get_resources(); - int x1 = x + menu->get_w() + 5; + int x1 = x + menu->get_w() + xs5; char *output_char = &pwindow->thread->edl->session->vconfig_in->v4l2jpeg_in_device[0]; dialog->add_subwindow(device_title = new BC_Title(x1, y, _("Device path:"), MEDIUMFONT, resources->text_default)); - dialog->add_subwindow(device_text = new VDeviceTextBox(x1, y + 20, output_char)); - x1 += bmax(device_title->get_w(),device_text->get_w()) + 5; + dialog->add_subwindow(device_text = new VDeviceTextBox(x1, y + ys20, output_char)); + x1 += bmax(device_title->get_w(),device_text->get_w()) + xs5; int *output_int = &pwindow->thread->edl->session->vconfig_in->v4l2jpeg_in_fields; fields_title = new BC_Title(x1, y, _("Fields:"), MEDIUMFONT, resources->text_default); dialog->add_subwindow(fields_title); - device_fields = new VDeviceTumbleBox(this, x1, y + 20, output_int, 1, 2, 20); + device_fields = new VDeviceTumbleBox(this, x1, y + ys20, output_int, 1, 2, xS(20)); device_fields->create_objects(); return 0; } @@ -356,12 +356,12 @@ int VDevicePrefs::create_v4l2mpeg_objs() { char *output_char; BC_Resources *resources = BC_WindowBase::get_resources(); - int x1 = x + menu->get_w() + 5; + int x1 = x + menu->get_w() + xS(5); output_char = pwindow->thread->edl->session->vconfig_in->v4l2mpeg_in_device; dialog->add_subwindow(device_title = new BC_Title(x1, y, _("Device path:"), MEDIUMFONT, resources->text_default)); - int y1 = y + 20; + int y1 = y + yS(20); dialog->add_subwindow(device_text = new VDeviceTextBox(x1, y1, output_char)); - x1 += 64; y1 += device_text->get_h() + 5; + x1 += xS(64); y1 += device_text->get_h() + yS(5); follow_video_config = new BC_CheckBox(x1, y1, &in_config->follow_video, _("Follow video config")); dialog->add_subwindow(follow_video_config); @@ -373,10 +373,10 @@ int VDevicePrefs::create_screencap_objs() { char *output_char; BC_Resources *resources = BC_WindowBase::get_resources(); - int x1 = x + menu->get_w() + 5; + int x1 = x + menu->get_w() + xS(5); output_char = pwindow->thread->edl->session->vconfig_in->screencapture_display; dialog->add_subwindow(device_title = new BC_Title(x1, y, _("Display:"), MEDIUMFONT, resources->text_default)); - dialog->add_subwindow(device_text = new VDeviceTextBox(x1, y + 20, output_char)); + dialog->add_subwindow(device_text = new VDeviceTextBox(x1, y + yS(20), output_char)); return 0; } @@ -395,17 +395,17 @@ int VDevicePrefs::create_x11_objs() x11_display = _("Default B Display:"); break; break; } - int x1 = menu->get_x() + menu->get_w() + 10; + int x1 = menu->get_x() + menu->get_w() + xS(10); int y1 = menu->get_y(); - if( driver == PLAYBACK_X11 ) y1 -= 10; - dialog->add_subwindow(device_title = new BC_Title(x1, y1+4, x11_display, + if( driver == PLAYBACK_X11 ) y1 -= yS(10); + dialog->add_subwindow(device_title = new BC_Title(x1, y1+yS(4), x11_display, MEDIUMFONT, resources->text_default)); - int x2 = x1 + device_title->get_w() + 10, dy = device_title->get_h(); + int x2 = x1 + device_title->get_w() + xS(10), dy = device_title->get_h(); dialog->add_subwindow(device_text = new VDeviceTextBox(x2, y1, output_char)); if( driver == PLAYBACK_X11 ) { int y2 = device_text->get_h(); if( dy < y2 ) dy = y2; - y1 += dy + 5; + y1 += dy + yS(5); use_direct_x11 = new BC_CheckBox(x1, y1, &out_config->use_direct_x11, _("use direct x11 render if possible")); dialog->add_subwindow(use_direct_x11); @@ -416,12 +416,9 @@ int VDevicePrefs::create_x11_objs() -VDriverMenu::VDriverMenu(int x, - int y, - VDevicePrefs *device_prefs, - int do_input, - int *output) - : BC_PopupMenu(x, y, 200, driver_to_string(*output)) +VDriverMenu::VDriverMenu(int x, int y, + VDevicePrefs *device_prefs, int do_input, int *output) + : BC_PopupMenu(x, y, xS(200), driver_to_string(*output)) { this->output = output; this->do_input = do_input; @@ -557,7 +554,7 @@ int VDriverItem::handle_event() VDeviceTextBox::VDeviceTextBox(int x, int y, char *output) - : BC_TextBox(x, y, 200, 1, output) + : BC_TextBox(x, y, xS(200), 1, output) { this->output = output; } @@ -590,7 +587,7 @@ int VDeviceTumbleBox::handle_event() VDeviceIntBox::VDeviceIntBox(int x, int y, int *output) - : BC_TextBox(x, y, 60, 1, *output) + : BC_TextBox(x, y, xS(60), 1, *output) { this->output = output; } @@ -639,7 +636,7 @@ int VScalingItem::handle_event() VScalingEquation::VScalingEquation(int x, int y, int *output) - : BC_PopupMenu(x, y, 240, interpolation_to_string(*output)) + : BC_PopupMenu(x, y, xS(240), interpolation_to_string(*output)) { this->output = output; } diff --git a/cinelerra-5.1/cinelerra/videowindowgui.C b/cinelerra-5.1/cinelerra/videowindowgui.C index 252e5710..351f544d 100644 --- a/cinelerra-5.1/cinelerra/videowindowgui.C +++ b/cinelerra-5.1/cinelerra/videowindowgui.C @@ -28,13 +28,13 @@ -#define CROPHANDLE_W 10 -#define CROPHANDLE_H 10 +#define CROPHANDLE_W xS(10) +#define CROPHANDLE_H yS(10) VideoWindowGUI::VideoWindowGUI(VideoWindow *thread, int w, int h) : BC_Window(_(PROGRAM_NAME ": Video out"), (int)BC_INFINITY, (int)BC_INFINITY, - w, h, 10, 10, 1, 1, 1) + w, h, xS(10), yS(10), 1, 1, 1) { this->thread = thread; } @@ -65,7 +65,7 @@ int VideoWindowGUI::resize_event(int w, int h) // new_h = h; // thread->get_full_sizes(full_w, full_h); // -// if(labs(full_w - new_w) < 50) +// if(labs(full_w - new_w) < xS(50)) // { // new_w = full_w; // new_h = full_h; @@ -73,8 +73,8 @@ int VideoWindowGUI::resize_event(int w, int h) // else // thread->fix_size(new_w, new_h, w, thread->mwindow->get_aspect_ratio()); // -// if(new_w < 10) new_w = 10; -// if(new_h < 10) new_h = 10; +// if(new_w < xS(10)) new_w = xS(10); +// if(new_h < yS(10)) new_h = yS(10); // w = thread->video_window_w = new_w; // h = new_h; // diff --git a/cinelerra-5.1/cinelerra/vpatchgui.C b/cinelerra-5.1/cinelerra/vpatchgui.C index 774ac86b..a2c2ca7c 100644 --- a/cinelerra-5.1/cinelerra/vpatchgui.C +++ b/cinelerra-5.1/cinelerra/vpatchgui.C @@ -109,7 +109,7 @@ int VPatchGUI::update(int x, int y) else if( h >= y2 ) { int64_t v = mwindow->get_float_auto(this, AUTOMATION_FADE)->get_value(); patchbay->add_subwindow(fade = new VFadePatch(this, x1+x, y1+y, - patchbay->get_w() - 10, v)); + patchbay->get_w() - xS(10), v)); } y1 = y2; @@ -130,13 +130,13 @@ int VPatchGUI::update(int x, int y) } } else if( h >= y2 ) { - patchbay->add_subwindow(mix = new VMixPatch(mwindow, this, x1+x, y1+y+5)); + patchbay->add_subwindow(mix = new VMixPatch(mwindow, this, x1+x, y1+y+yS(5))); x1 += mix->get_w(); patchbay->add_subwindow(mode = new VModePatch(mwindow, this, x1+x, y1+y)); mode->create_objects(); x1 += mode->get_w(); patchbay->add_subwindow(nudge = new NudgePatch(mwindow, this, x1+x, y1+y, - patchbay->get_w() - x1-x - 10)); + patchbay->get_w() - x1-x - xS(10))); } y1 = y2; @@ -190,7 +190,7 @@ int VFadePatch::handle_event() } VKeyFadePatch::VKeyFadePatch(MWindow *mwindow, VPatchGUI *patch, int x, int y) - : BC_SubWindow(x,y, 200,20, GWindowGUI::auto_colors[AUTOMATION_FADE]) + : BC_SubWindow(x,y, xS(200),yS(20), GWindowGUI::auto_colors[AUTOMATION_FADE]) { this->mwindow = mwindow; this->patch = patch; @@ -200,7 +200,7 @@ void VKeyFadePatch::create_objects() { int x = 0, y = 0; int64_t v = mwindow->get_float_auto(patch, AUTOMATION_FADE)->get_value(); - add_subwindow(vkey_fade_text = new VKeyFadeText(this, x, y, 64, v)); + add_subwindow(vkey_fade_text = new VKeyFadeText(this, x, y, xS(64), v)); x += vkey_fade_text->get_w(); VFrame **lok_images = mwindow->theme->get_image_set("lok"); int w1 = get_w() - x - lok_images[0]->get_w(); @@ -262,7 +262,7 @@ int VKeyFadeSlider::handle_event() VModePatch::VModePatch(MWindow *mwindow, VPatchGUI *patch, int x, int y) - : BC_PopupMenu(x, y, patch->patchbay->mode_icons[0]->get_w() + 20, + : BC_PopupMenu(x, y, patch->patchbay->mode_icons[0]->get_w() + xS(20), "", 1, mwindow->theme->get_image_set("mode_popup", 0), 0) { this->mwindow = mwindow; diff --git a/cinelerra-5.1/cinelerra/vwindowgui.C b/cinelerra-5.1/cinelerra/vwindowgui.C index 062989a2..892fb050 100644 --- a/cinelerra-5.1/cinelerra/vwindowgui.C +++ b/cinelerra-5.1/cinelerra/vwindowgui.C @@ -68,11 +68,7 @@ VWindowGUI::VWindowGUI(MWindow *mwindow, VWindow *vwindow) mwindow->session->vwindow_y, mwindow->session->vwindow_w, mwindow->session->vwindow_h, - 100, - 100, - 1, - 1, - 0) // Hide it + xS(100), yS(100), 1, 1, 0) // Hide it { this->mwindow = mwindow; this->vwindow = vwindow; @@ -717,13 +713,8 @@ void VWindowEditing::panel_set_labels_follow_edits(int v) {} VWindowSource::VWindowSource(MWindow *mwindow, VWindowGUI *vwindow, int x, int y) - : BC_PopupTextBox(vwindow, - &vwindow->sources, - "", - x, - y, - 200, - 200) + : BC_PopupTextBox(vwindow, &vwindow->sources, "", + x, y, xS(200), yS(200)) { this->mwindow = mwindow; this->vwindow = vwindow; diff --git a/cinelerra-5.1/cinelerra/wwindow.C b/cinelerra-5.1/cinelerra/wwindow.C index cdfa5349..4bb23990 100644 --- a/cinelerra-5.1/cinelerra/wwindow.C +++ b/cinelerra-5.1/cinelerra/wwindow.C @@ -73,7 +73,8 @@ int WWindow::wait_result() } WWindowGUI::WWindowGUI(WWindow *thread, int x, int y) - : BC_Window(_(PROGRAM_NAME ": Warning"), x, y, 640, 100, 640, 100, 0, 0, 1) + : BC_Window(_(PROGRAM_NAME ": Warning"), x, y, + xS(640), yS(100), xS(640), yS(100), 0, 0, 1) { this->thread = thread; } @@ -81,13 +82,13 @@ WWindowGUI::WWindowGUI(WWindow *thread, int x, int y) void WWindowGUI::create_objects() { lock_window("WWindowGUI::create_objects"); - int x = 10, y = 10; - add_subwindow(new BC_TextBox(x, y, get_w()-50, 3, thread->warn_text)); - y = get_h() - 30; + int x = xS(10), y = yS(10); + add_subwindow(new BC_TextBox(x, y, get_w()-xS(50), 3, thread->warn_text)); + y = get_h() - yS(30); if( thread->do_warning ) add_subwindow(new WDisable(this, x, y)); - y = get_h() - BC_CancelButton::calculate_h() - 10; - x = get_w() - BC_CancelButton::calculate_w() - 10; + y = get_h() - BC_CancelButton::calculate_h() - yS(10); + x = get_w() - BC_CancelButton::calculate_w() - xS(10); add_subwindow(new BC_CancelButton(x, y)); show_window(); unlock_window(); diff --git a/cinelerra-5.1/cinelerra/zoombar.C b/cinelerra-5.1/cinelerra/zoombar.C index 51d0df73..60ed04c5 100644 --- a/cinelerra-5.1/cinelerra/zoombar.C +++ b/cinelerra-5.1/cinelerra/zoombar.C @@ -23,6 +23,7 @@ #include "clip.h" #include "edl.h" #include "edlsession.h" +#include "keys.h" #include "language.h" #include "localsession.h" #include "maincursor.h" @@ -58,9 +59,9 @@ ZoomBar::~ZoomBar() void ZoomBar::create_objects() { - int x = 3; - int y = get_h() / 2 - - mwindow->theme->get_image_set("zoombar_menu", 0)[0]->get_h() / 2; + int xs5 = xS(5), xs10 = xS(10); + int x = xS(3), y = get_h()/2 - + mwindow->theme->get_image_set("zoombar_menu", 0)[0]->get_h()/2; draw_top_background(get_parent(), 0, 0, get_w(), get_h()); sample_zoom = new SampleZoomPanel(mwindow, this, x, y); @@ -74,16 +75,16 @@ void ZoomBar::create_objects() track_zoom = new TrackZoomPanel(mwindow, this, x, y); track_zoom->create_objects(); track_zoom->set_tooltip(_("Height of tracks in the timeline")); - x += track_zoom->get_w() + 10; + x += track_zoom->get_w() + xs10; - int wid = 120; + int wid = xS(120); for( int i=AUTOGROUPTYPE_AUDIO_FADE; i<=AUTOGROUPTYPE_Y; ++i ) { int ww = BC_GenericButton::calculate_w(this, AutoTypeMenu::to_text(i)); if( ww > wid ) wid = ww; } add_subwindow(auto_type = new AutoTypeMenu(mwindow, this, x, y, wid)); auto_type->create_objects(); - x += auto_type->get_w() + 10; + x += auto_type->get_w() + xs10; #define DEFAULT_TEXT "000.00 to 000.00" add_subwindow(auto_zoom = new AutoZoom(mwindow, this, x, y, 0)); x += auto_zoom->get_w(); @@ -93,19 +94,19 @@ void ZoomBar::create_objects() x, y, DEFAULT_TEXT)); - x += auto_zoom_text->get_w() + 5; + x += auto_zoom_text->get_w() + xs5; add_subwindow(auto_zoom = new AutoZoom(mwindow, this, x, y, 1)); update_autozoom(); - x += auto_zoom->get_w() + 5; + x += auto_zoom->get_w() + xs5; add_subwindow(from_value = new FromTextBox(mwindow, this, x, y)); - x += from_value->get_w() + 5; + x += from_value->get_w() + xs5; add_subwindow(length_value = new LengthTextBox(mwindow, this, x, y)); - x += length_value->get_w() + 5; + x += length_value->get_w() + xs5; add_subwindow(to_value = new ToTextBox(mwindow, this, x, y)); - x += to_value->get_w() + 5; + x += to_value->get_w() + xs5; add_subwindow(title_alpha_bar = new TitleAlphaBar(mwindow, this, x, y)); - x += title_alpha_bar->get_w() + 5; + x += title_alpha_bar->get_w() + xs5; add_subwindow(title_alpha_text = new TitleAlphaText(mwindow, this, x, y)); update_formatting(from_value); @@ -210,7 +211,7 @@ int ZoomBar::update_clocks() } TitleAlphaBar::TitleAlphaBar(MWindow *mwindow, ZoomBar *zoombar, int x, int y) - : BC_FSlider(x, y, 0, 150, 200, 0, 1.0, mwindow->session->title_bar_alpha, 0) + : BC_FSlider(x, y, 0, xS(150), xS(200), 0, 1.0, mwindow->session->title_bar_alpha, 0) { this->mwindow = mwindow; this->zoombar = zoombar; @@ -229,7 +230,7 @@ int TitleAlphaBar::handle_event() } TitleAlphaText::TitleAlphaText(MWindow *mwindow, ZoomBar *zoombar, int x, int y) - : BC_TextBox(x, y, 48, 1, mwindow->session->title_bar_alpha, 0, MEDIUMFONT, 2) + : BC_TextBox(x, y, xS(48), 1, mwindow->session->title_bar_alpha, 0, MEDIUMFONT, 2) { this->mwindow = mwindow; this->zoombar = zoombar; @@ -349,19 +350,9 @@ int ZoomBar::set_selection(int which_one) } - - - - - - - - - - SampleZoomPanel::SampleZoomPanel(MWindow *mwindow, ZoomBar *zoombar, int x, int y) : ZoomPanel(mwindow, zoombar, mwindow->edl->local_session->zoom_sample, - x, y, 130, MIN_ZOOM_TIME, MAX_ZOOM_TIME, ZOOM_TIME) + x, y, xS(130), MIN_ZOOM_TIME, MAX_ZOOM_TIME, ZOOM_TIME) { this->mwindow = mwindow; this->zoombar = zoombar; @@ -375,7 +366,7 @@ int SampleZoomPanel::handle_event() AmpZoomPanel::AmpZoomPanel(MWindow *mwindow, ZoomBar *zoombar, int x, int y) : ZoomPanel(mwindow, zoombar, mwindow->edl->local_session->zoom_y, - x, y, 100, MIN_AMP_ZOOM, MAX_AMP_ZOOM, ZOOM_LONG) + x, y, xS(100), MIN_AMP_ZOOM, MAX_AMP_ZOOM, ZOOM_LONG) { this->mwindow = mwindow; this->zoombar = zoombar; @@ -388,7 +379,7 @@ int AmpZoomPanel::handle_event() TrackZoomPanel::TrackZoomPanel(MWindow *mwindow, ZoomBar *zoombar, int x, int y) : ZoomPanel(mwindow, zoombar, mwindow->edl->local_session->zoom_track, - x, y, 90, MIN_TRACK_ZOOM, MAX_TRACK_ZOOM, ZOOM_LONG) + x, y, xS(90), MIN_TRACK_ZOOM, MAX_TRACK_ZOOM, ZOOM_LONG) { this->mwindow = mwindow; this->zoombar = zoombar; @@ -440,7 +431,7 @@ int AutoZoom::handle_down_event() AutoTypeMenu::AutoTypeMenu(MWindow *mwindow, ZoomBar *zoombar, int x, int y, int wid) - : BC_PopupMenu(x, y, wid + 24, + : BC_PopupMenu(x, y, wid + xS(24), to_text(mwindow->edl->local_session->zoombar_showautotype), 1, 0, 12) { this->mwindow = mwindow; @@ -484,12 +475,12 @@ int AutoTypeMenu::from_text(char *text) int AutoTypeMenu::draw_face(int dx, int color) { - BC_PopupMenu::draw_face(dx+8, color); + BC_PopupMenu::draw_face(dx+xS(8), color); color = mwindow->edl->local_session->zoombar_showautocolor; if( color >= 0 ) { set_color(color); int margin = get_margin(); - int mx = margin+8, my = 3*margin/8; + int mx = margin+xS(8), my = 3*margin/8; int bh = get_h() - 2*my; draw_box(mx,my, bh,bh); } @@ -505,7 +496,7 @@ int AutoTypeMenu::handle_event() ZoomTextBox::ZoomTextBox(MWindow *mwindow, ZoomBar *zoombar, int x, int y, const char *text) - : BC_TextBox(x, y, 130, 1, text) + : BC_TextBox(x, y, xS(130), 1, text) { this->mwindow = mwindow; this->zoombar = zoombar; @@ -565,7 +556,7 @@ int ZoomTextBox::handle_event() FromTextBox::FromTextBox(MWindow *mwindow, ZoomBar *zoombar, int x, int y) - : BC_TextBox(x, y, 90, 1, "") + : BC_TextBox(x, y, xS(90), 1, "") { this->mwindow = mwindow; this->zoombar = zoombar; @@ -574,7 +565,7 @@ FromTextBox::FromTextBox(MWindow *mwindow, ZoomBar *zoombar, int x, int y) int FromTextBox::handle_event() { - if(get_keypress() == 13) + if(get_keypress() == NEWLINE) { zoombar->set_selection(SET_FROM); return 1; @@ -601,7 +592,7 @@ int FromTextBox::update_position(double new_position) LengthTextBox::LengthTextBox(MWindow *mwindow, ZoomBar *zoombar, int x, int y) - : BC_TextBox(x, y, 90, 1, "") + : BC_TextBox(x, y, xS(90), 1, "") { this->mwindow = mwindow; this->zoombar = zoombar; @@ -610,7 +601,7 @@ LengthTextBox::LengthTextBox(MWindow *mwindow, ZoomBar *zoombar, int x, int y) int LengthTextBox::handle_event() { - if(get_keypress() == 13) + if(get_keypress() == NEWLINE) { zoombar->set_selection(SET_LENGTH); return 1; @@ -635,7 +626,7 @@ int LengthTextBox::update_position(double new_position) ToTextBox::ToTextBox(MWindow *mwindow, ZoomBar *zoombar, int x, int y) - : BC_TextBox(x, y, 90, 1, "") + : BC_TextBox(x, y, xS(90), 1, "") { this->mwindow = mwindow; this->zoombar = zoombar; @@ -644,7 +635,7 @@ ToTextBox::ToTextBox(MWindow *mwindow, ZoomBar *zoombar, int x, int y) int ToTextBox::handle_event() { - if(get_keypress() == 13) + if(get_keypress() == NEWLINE) { zoombar->set_selection(SET_TO); return 1; diff --git a/cinelerra-5.1/cinelerra/zwindowgui.C b/cinelerra-5.1/cinelerra/zwindowgui.C index 9657b573..1ffa772d 100644 --- a/cinelerra-5.1/cinelerra/zwindowgui.C +++ b/cinelerra-5.1/cinelerra/zwindowgui.C @@ -39,7 +39,7 @@ ZWindowGUI::ZWindowGUI(MWindow *mwindow, ZWindow *zwindow, Mixer *mixer) : BC_Window(zwindow->title, mixer->x, mixer->y, mixer->w, mixer->h, - 100, 75, 1, 1, 0) + xS(100), yS(75), 1, 1, 0) { this->mwindow = mwindow; this->zwindow = zwindow; @@ -59,7 +59,8 @@ void ZWindowGUI::create_objects() { lock_window("ZWindowGUI::create_objects"); - canvas = new ZWindowCanvas(mwindow, this, 10,10, get_w()-20,get_h()-20); + canvas = new ZWindowCanvas(mwindow, this, + xS(10),yS(10), get_w()-xS(20),get_h()-yS(20)); canvas->create_objects(mwindow->edl); playback_engine = new PlaybackEngine(mwindow, canvas); playback_engine->create_objects(); @@ -71,7 +72,8 @@ void ZWindowGUI::create_objects() int ZWindowGUI::resize_event(int w, int h) { - canvas->reposition_window(0, 10,10, w-20,h-20); + canvas->reposition_window(0, + xS(10),yS(10), w-xS(20),h-yS(20)); zwindow->reposition(get_x(), get_y(), w, h); BC_WindowBase::resize_event(w, h); return 1; diff --git a/cinelerra-5.1/guicast/bcbutton.C b/cinelerra-5.1/guicast/bcbutton.C index 6d0c4349..e4088e55 100644 --- a/cinelerra-5.1/guicast/bcbutton.C +++ b/cinelerra-5.1/guicast/bcbutton.C @@ -254,22 +254,22 @@ int BC_Button::get_status() BC_OKButton::BC_OKButton(int x, int y) : BC_Button(x, y, - BC_WindowBase::get_resources()->ok_images) + BC_WindowBase::get_resources()->ok_images) { } BC_OKButton::BC_OKButton(BC_WindowBase *parent_window, VFrame **images) - : BC_Button(10, - parent_window->get_h() - images[0]->get_h() - 10, - images) + : BC_Button(xS(10), + parent_window->get_h() - images[0]->get_h() - yS(10), + images) { set_tooltip(_("OK")); } BC_OKButton::BC_OKButton(BC_WindowBase *parent_window) - : BC_Button(10, - parent_window->get_h() - BC_WindowBase::get_resources()->ok_images[0]->get_h() - 10, - BC_WindowBase::get_resources()->ok_images) + : BC_Button(xS(10), + parent_window->get_h() - BC_WindowBase::get_resources()->ok_images[0]->get_h() - yS(10), + BC_WindowBase::get_resources()->ok_images) { set_tooltip(_("OK")); } @@ -282,8 +282,8 @@ int BC_OKButton::handle_event() int BC_OKButton::resize_event(int w, int h) { - reposition_window(10, - h - BC_WindowBase::get_resources()->cancel_images[0]->get_h() - 10); + reposition_window(xS(10), + h - BC_WindowBase::get_resources()->cancel_images[0]->get_h() - yS(10)); return 1; } @@ -317,23 +317,23 @@ int BC_OKButton::calculate_w() BC_CancelButton::BC_CancelButton(int x, int y) : BC_Button(x, y, - BC_WindowBase::get_resources()->cancel_images) + BC_WindowBase::get_resources()->cancel_images) { set_tooltip(_("Cancel")); } BC_CancelButton::BC_CancelButton(BC_WindowBase *parent_window) - : BC_Button(parent_window->get_w() - BC_WindowBase::get_resources()->cancel_images[0]->get_w() - 10, - parent_window->get_h() - BC_WindowBase::get_resources()->cancel_images[0]->get_h() - 10, - BC_WindowBase::get_resources()->cancel_images) + : BC_Button(parent_window->get_w() - BC_WindowBase::get_resources()->cancel_images[0]->get_w() - xS(10), + parent_window->get_h() - BC_WindowBase::get_resources()->cancel_images[0]->get_h() - yS(10), + BC_WindowBase::get_resources()->cancel_images) { set_tooltip(_("Cancel")); } BC_CancelButton::BC_CancelButton(BC_WindowBase *parent_window, VFrame **images) - : BC_Button(parent_window->get_w() - images[0]->get_w() - 10, - parent_window->get_h() - images[0]->get_h() - 10, - images) + : BC_Button(parent_window->get_w() - images[0]->get_w() - xS(10), + parent_window->get_h() - images[0]->get_h() - yS(10), + images) { set_tooltip(_("Cancel")); } @@ -346,8 +346,8 @@ int BC_CancelButton::handle_event() int BC_CancelButton::resize_event(int w,int h) { - reposition_window(w - BC_WindowBase::get_resources()->cancel_images[0]->get_w() - 10, - h - BC_WindowBase::get_resources()->cancel_images[0]->get_h() - 10); + reposition_window(w - BC_WindowBase::get_resources()->cancel_images[0]->get_w() - xS(10), + h - BC_WindowBase::get_resources()->cancel_images[0]->get_h() - yS(10)); return 1; } @@ -485,8 +485,8 @@ int BC_GenericButton::draw_face(int flush) BC_OKTextButton::BC_OKTextButton(BC_WindowBase *parent_window) - : BC_GenericButton(10, - parent_window->get_h() - BC_GenericButton::calculate_h() - 10, + : BC_GenericButton(xS(10), + parent_window->get_h() - BC_GenericButton::calculate_h() - yS(10), _("OK")) { this->parent_window = parent_window; @@ -494,8 +494,8 @@ BC_OKTextButton::BC_OKTextButton(BC_WindowBase *parent_window) int BC_OKTextButton::resize_event(int w, int h) { - reposition_window(10, - parent_window->get_h() - BC_GenericButton::calculate_h() - 10); + reposition_window(xS(10), + parent_window->get_h() - BC_GenericButton::calculate_h() - yS(10)); return 1; } @@ -514,8 +514,8 @@ int BC_OKTextButton::keypress_event() BC_CancelTextButton::BC_CancelTextButton(BC_WindowBase *parent_window) - : BC_GenericButton(parent_window->get_w() - BC_GenericButton::calculate_w(parent_window, _("Cancel")) - 10, - parent_window->get_h() - BC_GenericButton::calculate_h() - 10, + : BC_GenericButton(parent_window->get_w() - BC_GenericButton::calculate_w(parent_window, _("Cancel")) - xS(10), + parent_window->get_h() - BC_GenericButton::calculate_h() - yS(10), _("Cancel")) { this->parent_window = parent_window; @@ -523,8 +523,8 @@ BC_CancelTextButton::BC_CancelTextButton(BC_WindowBase *parent_window) int BC_CancelTextButton::resize_event(int w, int h) { - reposition_window(parent_window->get_w() - BC_GenericButton::calculate_w(parent_window, _("Cancel")) - 10, - parent_window->get_h() - BC_GenericButton::calculate_h() - 10); + reposition_window(parent_window->get_w() - BC_GenericButton::calculate_w(parent_window, _("Cancel")) - xS(10), + parent_window->get_h() - BC_GenericButton::calculate_h() - yS(10)); return 1; } diff --git a/cinelerra-5.1/guicast/bcdelete.C b/cinelerra-5.1/guicast/bcdelete.C index 972eff3d..2267f4ee 100644 --- a/cinelerra-5.1/guicast/bcdelete.C +++ b/cinelerra-5.1/guicast/bcdelete.C @@ -25,20 +25,9 @@ #include "language.h" - - - BC_DeleteFile::BC_DeleteFile(BC_FileBox *filebox, int x, int y) : BC_Window(filebox->get_delete_title(), - x, - y, - 320, - 480, - 0, - 0, - 0, - 0, - 1) + x, y, xS(320), yS(480), 0, 0, 0, 0, 1) { this->filebox = filebox; data = 0; @@ -51,7 +40,7 @@ BC_DeleteFile::~BC_DeleteFile() void BC_DeleteFile::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); data = new ArrayList; int i = 1; char *path; @@ -67,15 +56,11 @@ void BC_DeleteFile::create_objects() BC_Title *title; add_subwindow(title = new BC_Title(x, y, _("Really delete the following files?"))); - y += title->get_h() + 5; + y += title->get_h() + yS(5); BC_DeleteList *list; - add_subwindow(list = new BC_DeleteList(filebox, - x, - y, - get_w() - x * 2, - get_h() - y - BC_OKButton::calculate_h() - 20, - data)); - y += list->get_h() + 5; + add_subwindow(list = new BC_DeleteList(filebox, x, y, + get_w() - x * 2, get_h() - y - BC_OKButton::calculate_h() - xS(20), data)); + y += list->get_h() + yS(5); add_subwindow(new BC_OKButton(this)); add_subwindow(new BC_CancelButton(this)); show_window(); @@ -83,34 +68,15 @@ void BC_DeleteFile::create_objects() } - - - BC_DeleteList::BC_DeleteList(BC_FileBox *filebox, - int x, - int y, - int w, - int h, + int x, int y, int w, int h, ArrayList *data) - : BC_ListBox(x, - y, - w, - h, - LISTBOX_TEXT, - data) + : BC_ListBox(x, y, w, h, LISTBOX_TEXT, data) { this->filebox = filebox; } - - - - - - - - BC_DeleteThread::BC_DeleteThread(BC_FileBox *filebox) : BC_DialogThread() { @@ -136,10 +102,3 @@ BC_Window* BC_DeleteThread::new_gui() return result; } - - - - - - - diff --git a/cinelerra-5.1/guicast/bcdisplay.C b/cinelerra-5.1/guicast/bcdisplay.C index 39a2b908..b09beb64 100644 --- a/cinelerra-5.1/guicast/bcdisplay.C +++ b/cinelerra-5.1/guicast/bcdisplay.C @@ -122,38 +122,27 @@ void BC_Display::dump_windows() void BC_Display::new_window(BC_WindowBase *window) { -//printf("BC_Display::new_window %d\n", __LINE__); - if(!clipboard) - { + if( !clipboard ) { clipboard = new BC_Clipboard(window); clipboard->start_clipboard(); } -//printf("BC_Display::new_window %d\n", __LINE__); windows.append(window); // dump_windows(); -//printf("BC_Display::new_window %d\n", __LINE__); } void BC_Display::delete_window(BC_WindowBase *window) { -//printf("BC_Display::delete_window %d\n", __LINE__); windows.remove(window); -//printf("BC_Display::delete_window %d\n", __LINE__); } // If the event happened in any subwindow int BC_Display::is_event_win(XEvent *event, BC_WindowBase *window) { Window event_win = event->xany.window; -//printf("BC_Display::is_event_win %d\n", __LINE__); if(event_win == 0 || window->win == event_win) return 1; -//printf("BC_Display::is_event_win %d\n", __LINE__); - for(int i = 0; i < window->subwindows->size(); i++) - { - if(is_event_win(event, window->subwindows->get(i))) - { -//printf("BC_Display::is_event_win %d\n", __LINE__); + for(int i = 0; i < window->subwindows->size(); i++) { + if(is_event_win(event, window->subwindows->get(i))) { return 1; } } @@ -174,79 +163,55 @@ int BC_Display::is_event_win(XEvent *event, BC_WindowBase *window) void BC_Display::loop() { - const int debug = 0; -if(debug) printf("BC_Display::loop %d\n", __LINE__); while(!done) { // If an event is waiting, process it now. -if(debug) printf("BC_Display::loop %d\n", __LINE__); if(get_event_count()) { -if(debug) printf("BC_Display::loop %d\n", __LINE__); handle_event(); -if(debug) printf("BC_Display::loop %d\n", __LINE__); } else // Otherwise, process all compressed events & get the next event. { -if(debug) printf("BC_Display::loop %d\n", __LINE__); lock_display("BC_Display::loop"); for(int i = 0; i < windows.size(); i++) { BC_WindowBase *window = windows.get(i); -if(debug) printf("BC_Display::loop %d %d %d %d\n", -__LINE__, -window->resize_events, -window->motion_events, -window->translation_events); +// printf("BC_Display::loop %d %d %d %d\n", __LINE__, +// window->resize_events, window->motion_events, window->translation_events); if(window->resize_events) window->dispatch_resize_event(window->last_resize_w, window->last_resize_h); if(window->motion_events) window->dispatch_motion_event(); -if(debug) printf("BC_Display::loop %d\n", __LINE__); if(window->translation_events) window->dispatch_translation_event(); } -if(debug) printf("BC_Display::loop %d\n", __LINE__); unlock_display(); -if(debug) printf("BC_Display::loop %d\n", __LINE__); handle_event(); -if(debug) printf("BC_Display::loop %d\n", __LINE__); } } -if(debug) printf("BC_Display::loop %d\n", __LINE__); } void BC_Display::handle_event() { -const int debug = 0; XEvent *event = get_event(); -if(debug) printf("BC_Display::handle_event %d type=%d\n", -__LINE__, -event->type); +// printf("BC_Display::handle_event %d type=%d\n", __LINE__, event->type); lock_display("BC_Display::handle_event"); -if(debug) printf("BC_Display::handle_event %d\n", __LINE__); for(int i = 0; i < windows.size(); i++) { // Test if event was inside window -if(debug) printf("BC_Display::handle_event %d\n", __LINE__); BC_WindowBase *window = windows.get(i); -if(debug) printf("BC_Display::handle_event %d\n", __LINE__); if(is_event_win(event, window)) // Dispatch event window->dispatch_event(event); -if(debug) printf("BC_Display::handle_event %d\n", __LINE__); } -if(debug) printf("BC_Display::handle_event %d\n", __LINE__); unlock_display(); -if(debug) printf("BC_Display::handle_event %d\n", __LINE__); delete event; -if(debug) printf("BC_Display::handle_event %d\n", __LINE__); } // Get pending events for the given window @@ -274,13 +239,9 @@ int BC_Display::get_event_count() XEvent* BC_Display::get_event() { XEvent *result = 0; - while(!done && !result) - { -//printf("BC_Display::get_event %d\n", __LINE__); + while(!done && !result) { event_condition->lock("BC_WindowBase::get_event"); -//printf("BC_Display::get_event %d\n", __LINE__); event_lock->lock("BC_WindowBase::get_event"); -//printf("BC_Display::get_event %d\n", __LINE__); if(common_events.total && !done) { diff --git a/cinelerra-5.1/guicast/bcdisplayinfo.C b/cinelerra-5.1/guicast/bcdisplayinfo.C index 489d1314..fcee2066 100644 --- a/cinelerra-5.1/guicast/bcdisplayinfo.C +++ b/cinelerra-5.1/guicast/bcdisplayinfo.C @@ -114,6 +114,21 @@ int BC_DisplayInfo::xinerama_geometry(int screen, int &x, int &y, int &w, int &h return 0; } +int BC_DisplayInfo::xinerama_big_screen() +{ + int screens = get_xinerama_screens(); + int best = 0, ret = -1; + for( int k=screens; --k>=0; ) { + int w = xinerama_info[k].width, h = xinerama_info[k].height; + int sz = w * h; + if( sz > best ) { + ret = xinerama_info[k].screen_number; + best = sz; + } + } + return ret; +} + static void get_top_coords(Display *display, Window win, int &px,int &py, int &tx,int &ty) { Window *pcwin = 0; unsigned int ncwin = 0; diff --git a/cinelerra-5.1/guicast/bcdisplayinfo.h b/cinelerra-5.1/guicast/bcdisplayinfo.h index 2b7e5187..63c06b98 100644 --- a/cinelerra-5.1/guicast/bcdisplayinfo.h +++ b/cinelerra-5.1/guicast/bcdisplayinfo.h @@ -59,6 +59,7 @@ public: int get_screen() { return scrnum; } int get_xinerama_screens(); int xinerama_geometry(int screen, int &x, int &y, int &w, int &h); + int xinerama_big_screen(); #ifdef HAVE_GL int gl_fb_config(); int gl_probe(Window win); diff --git a/cinelerra-5.1/guicast/bcfilebox.C b/cinelerra-5.1/guicast/bcfilebox.C index 803f2fc4..54e6bbf5 100644 --- a/cinelerra-5.1/guicast/bcfilebox.C +++ b/cinelerra-5.1/guicast/bcfilebox.C @@ -38,13 +38,8 @@ #include - - - - - BC_FileBoxRecent::BC_FileBoxRecent(BC_FileBox *filebox, int x, int y) - : BC_ListBox(x, y, 250, + : BC_ListBox(x, y, xS(250), filebox->get_text_height(MEDIUMFONT) * FILEBOX_HISTORY_SIZE + BC_ScrollBar::get_span(SCROLL_HORIZ) + LISTBOX_MARGIN * 2, LISTBOX_TEXT, &filebox->recent_dirs, @@ -65,15 +60,6 @@ int BC_FileBoxRecent::handle_event() } - - - - - - - - - BC_FileBoxListBox::BC_FileBoxListBox(int x, int y, BC_FileBox *filebox) : BC_ListBox(x, y, filebox->get_listbox_w(), filebox->get_listbox_h(y), filebox->get_display_mode(), filebox->list_column, @@ -174,7 +160,7 @@ int BC_FileBoxListBox::evaluate_query(char *string) BC_FileBoxTextBox::BC_FileBoxTextBox(int x, int y, BC_FileBox *filebox) - : BC_TextBox(x, y, filebox->get_w() - x - 20, 1, + : BC_TextBox(x, y, filebox->get_w() - x - xS(20), 1, filebox->want_directory ? filebox->directory : filebox->filename) { this->filebox = filebox; @@ -224,7 +210,7 @@ int BC_FileBoxDirectoryText::handle_event() BC_FileBoxSearchText::BC_FileBoxSearchText(int x, int y, BC_FileBox *filebox) - : BC_TextBox(x, y, filebox->get_w() - x - 40, 1, "") + : BC_TextBox(x, y, filebox->get_w() - x - xS(40), 1, "") { this->filebox = filebox; } @@ -237,7 +223,7 @@ int BC_FileBoxSearchText::handle_event() BC_FileBoxFilterText::BC_FileBoxFilterText(int x, int y, BC_FileBox *filebox) - : BC_TextBox(x, y, filebox->get_w() - x - 50, 1, filebox->get_resources()->filebox_filter) + : BC_TextBox(x, y, filebox->get_w() - x - xS(50), 1, filebox->get_resources()->filebox_filter) { this->filebox = filebox; } @@ -250,7 +236,7 @@ int BC_FileBoxFilterText::handle_event() BC_FileBoxFilterMenu::BC_FileBoxFilterMenu(int x, int y, BC_FileBox *filebox) - : BC_ListBox(x, y, filebox->get_w() - 30, 120, + : BC_ListBox(x, y, filebox->get_w() - xS(30), yS(120), LISTBOX_TEXT, &filebox->filter_list, 0, 0, 1, 0, 1) { this->filebox = filebox; @@ -462,7 +448,7 @@ BC_FileBox::BC_FileBox(int x, int y, const char *init_path, : BC_Window(title, x, y, BC_WindowBase::get_resources()->filebox_w, BC_WindowBase::get_resources()->filebox_h, - 400, 300, 1, 0, 1) + xS(400), yS(300), 1, 0, 1) { fs = new FileSystem; // if(want_directory) @@ -540,8 +526,7 @@ BC_FileBox::BC_FileBox(int x, int y, const char *init_path, if(h_padding == -1) { - h_padding = BC_WindowBase::get_resources()->ok_images[0]->get_h() - - 20; + h_padding = BC_WindowBase::get_resources()->ok_images[0]->get_h() - yS(20); } this->h_padding = h_padding; delete_thread = new BC_DeleteThread(this); @@ -568,10 +553,12 @@ BC_FileBox::~BC_FileBox() void BC_FileBox::create_objects() { + int xs5 = xS(5), xs10 = xS(10), xs20 = xS(20); + int ys5 = yS(5), ys10 = yS(10); lock_window("BC_FileBox::create_objects"); - int x = 10, y = 10; + int x = xs10, y = ys10; BC_Resources *resources = BC_WindowBase::get_resources(); - int directory_title_margin = MAX(20, + int directory_title_margin = MAX(xs20, resources->filebox_text_images[0]->get_h()); // Directories aren't filtered in FileSystem so skip this @@ -597,52 +584,52 @@ void BC_FileBox::create_objects() add_subwindow(new BC_Title(x, y, caption)); - x = get_w() - resources->filebox_icons_images[0]->get_w() - 10; + x = get_w() - resources->filebox_icons_images[0]->get_w() - xs10; add_subwindow(icon_button = new BC_FileBoxIcons(x, y, this)); - x -= resources->filebox_text_images[0]->get_w() + 5; + x -= resources->filebox_text_images[0]->get_w() + xs5; add_subwindow(text_button = new BC_FileBoxText(x, y, this)); - x -= resources->filebox_newfolder_images[0]->get_w() + 5; + x -= resources->filebox_newfolder_images[0]->get_w() + xs5; add_subwindow(folder_button = new BC_FileBoxNewfolder(x, y, this)); - x -= resources->filebox_delete_images[0]->get_w() + 5; + x -= resources->filebox_delete_images[0]->get_w() + xs5; add_subwindow(rename_button = new BC_FileBoxRename(x, y, this)); - x -= resources->filebox_delete_images[0]->get_w() + 5; + x -= resources->filebox_delete_images[0]->get_w() + xs5; add_subwindow(delete_button = new BC_FileBoxDelete(x, y, this)); - x -= resources->filebox_reload_images[0]->get_w() + 5; + x -= resources->filebox_reload_images[0]->get_w() + xs5; add_subwindow(reload_button = new BC_FileBoxReload(x, y, this)); - x -= resources->filebox_updir_images[0]->get_w() + 5; + x -= resources->filebox_updir_images[0]->get_w() + xs5; add_subwindow(updir_button = new BC_FileBoxUpdir(x, y, this)); - x -= resources->filebox_szfmt_images[0]->get_w() + 5; + x -= resources->filebox_szfmt_images[0]->get_w() + xs5; add_subwindow(szfmt_button = new BC_FileBoxSizeFormat(x, y, this)); - x = 10; - y += directory_title_margin + 3; + x = xs10; + y += directory_title_margin + yS(3); add_subwindow(recent_popup = new BC_FileBoxRecent(this, x, y)); BC_Title *dir_title; add_subwindow(dir_title = new BC_Title(x, y, _("Directory:"))); - int x1 = x + dir_title->get_w() + 10, w1 = get_w()-x1 - recent_popup->get_w()-20; + int x1 = x + dir_title->get_w() + xs10, w1 = get_w()-x1 - recent_popup->get_w()-xs20; add_subwindow(directory_title = new BC_FileBoxDirectoryText(x1, y, w1, this)); - x1 += directory_title->get_w() + 8; - recent_popup->reposition_window(x1, y, directory_title->get_w(), 200); + x1 += directory_title->get_w() + xS(8); + recent_popup->reposition_window(x1, y, directory_title->get_w(), yS(200)); - x = 10; - y += directory_title->get_h() + 5; + x = xs10; + y += directory_title->get_h() + ys5; BC_Title *search_title; add_subwindow(search_title = new BC_Title(x, y, _("Search:"))); - x += search_title->get_w() + 10; + x += search_title->get_w() + xs10; add_subwindow(search_text = new BC_FileBoxSearchText(x, y, this)); - x = 10; - y += search_text->get_h() + 5; + x = xs10; + y += search_text->get_h() + ys5; int newest_id = 0, newest = -1; for(int i = 0; i < FILEBOX_HISTORY_SIZE; i++) { @@ -668,19 +655,19 @@ void BC_FileBox::create_objects() listbox = 0; create_listbox(x, y, get_display_mode()); - y += listbox->get_h() + 10; + y += listbox->get_h() + ys10; add_subwindow(file_title = new BC_Title(x, y, _("File:"))); - x1 = x + file_title->get_w() + 10; + x1 = x + file_title->get_w() + xs10; add_subwindow(textbox = new BC_FileBoxTextBox(x1, y, this)); - y += textbox->get_h() + 10; + y += textbox->get_h() + ys10; if(!want_directory) { add_subwindow(filter_title = new BC_Title(x, y, _("Specify filter:"))); - int x1 = x + filter_title->get_w() + 10; + int x1 = x + filter_title->get_w() + xs10; add_subwindow(filter_text = new BC_FileBoxFilterText(x1, y, this)); add_subwindow(filter_popup = new BC_FileBoxFilterMenu(x1 + filter_text->get_w(), y, this)); - y += filter_text->get_h() + 10; + y += filter_text->get_h() + ys10; } y_margin = y; @@ -698,12 +685,12 @@ void BC_FileBox::create_objects() int BC_FileBox::get_listbox_w() { - return get_w() - 20; + return get_w() - xS(20); } int BC_FileBox::get_listbox_h(int y) { - int result = get_h() - y - h_padding - 10; + int result = get_h() - y - h_padding - yS(10); if(want_directory) result -= BC_WindowBase::get_resources()->dirbox_margin; else @@ -734,13 +721,13 @@ int BC_FileBox::resize_event(int w, int h) // cancel_button->reposition_window(w - (get_w() - cancel_button->get_x()), // h - (get_h() - cancel_button->get_y())); if(usethis_button) - usethis_button->reposition_window(w / 2 - 50, + usethis_button->reposition_window(w / 2 - xS(50), h - (get_h() - usethis_button->get_y())); if(filter_popup) filter_popup->reposition_window(w - (get_w() - filter_popup->get_x()), h - (get_h() - filter_popup->get_y()), - w - 30, + w - xS(30), 0); if(filter_title) filter_title->reposition_window(filter_title->get_x(), @@ -751,15 +738,15 @@ int BC_FileBox::resize_event(int w, int h) 1); directory_title->reposition_window( directory_title->get_x(), directory_title->get_y(), - get_w()-directory_title->get_x() - recent_popup->get_w()-20, 1); + get_w()-directory_title->get_x() - recent_popup->get_w()-xS(20), 1); recent_popup->reposition_window( - directory_title->get_x() + directory_title->get_w() + 8, + directory_title->get_x() + directory_title->get_w() + xS(8), directory_title->get_y(), - directory_title->get_w() + recent_popup->get_w(), 200); + directory_title->get_w() + recent_popup->get_w(), xS(200)); search_text->reposition_window( search_text->get_x(), search_text->get_y(), - get_w() - search_text->get_x() - 40, + get_w() - search_text->get_x() - xS(40), 1); file_title->reposition_window(file_title->get_x(), h - (get_h() - file_title->get_y())); @@ -785,8 +772,8 @@ int BC_FileBox::resize_event(int w, int h) get_resources()->filebox_w = get_w(); get_resources()->filebox_h = get_h(); y_margin = filter_text ? - filter_text->get_y() + filter_text->get_h() + 10 : - textbox->get_y() + textbox->get_h() + 10 ; + filter_text->get_y() + filter_text->get_h() + yS(10) : + textbox->get_y() + textbox->get_h() + yS(10) ; flush(); return 1; } diff --git a/cinelerra-5.1/guicast/bclistbox.C b/cinelerra-5.1/guicast/bclistbox.C index a7cb8b87..8ef0ab0b 100644 --- a/cinelerra-5.1/guicast/bclistbox.C +++ b/cinelerra-5.1/guicast/bclistbox.C @@ -1689,17 +1689,16 @@ int BC_ListBox::get_scrollbars() int flush = 0; title_h = get_title_h(); - view_h = popup_h - title_h - 4; - view_w = popup_w - 4; + view_h = popup_h - title_h - yS(4); + view_w = popup_w - xS(4); // Create scrollbars as needed for( int i=0; i<2; ++i ) { if( w_needed > view_w ) { need_xscroll = 1; - view_h = popup_h - - title_h - + view_h = popup_h - title_h - get_resources()->hscroll_data[SCROLL_HANDLE_UP]->get_h() - - 4; + yS(4); } else { need_xscroll = 0; @@ -1709,7 +1708,7 @@ int BC_ListBox::get_scrollbars() need_yscroll = 1; view_w = popup_w - get_resources()->vscroll_data[SCROLL_HANDLE_UP]->get_w() - - 4; + xS(4); } else { need_yscroll = 0; @@ -1768,10 +1767,10 @@ int BC_ListBox::get_scrollbars() } if( !bg_surface || - view_w + 4 != bg_surface->get_w() || - view_h + 4 != bg_surface->get_h() ) { + view_w + xS(4) != bg_surface->get_w() || + view_h + yS(4) != bg_surface->get_h() ) { if( bg_surface ) delete bg_surface; - bg_surface = new BC_Pixmap(gui, view_w + 4, view_h + 4); + bg_surface = new BC_Pixmap(gui, view_w + xS(4), view_h + yS(4)); bg_draw = 1; } @@ -1779,6 +1778,18 @@ int BC_ListBox::get_scrollbars() return 0; } +int BC_ListBox::get_w() +{ + return is_popup ? button_images[0]->get_w() + xS(1) : popup_w; +} +int BC_ListBox::get_h() +{ + return is_popup ? button_images[0]->get_h() + yS(1) : popup_h; +} +int BC_ListBox::gui_tooltip(const char *text) +{ + return is_popup && gui ? gui->show_tooltip(text, gui->get_w(),0, -1,-1) : -1; +} void BC_ListBox::set_drag_scroll(int value) { @@ -1815,18 +1826,18 @@ int BC_ListBox::drag_scroll_event() result = 1; } else - if( get_cursor_y() >= view_h + title_h + 4 ) { - yposition += get_cursor_y() - (view_h + title_h + 4); + if( get_cursor_y() >= view_h + title_h + yS(4) ) { + yposition += get_cursor_y() - (view_h + title_h + yS(4)); result = 1; } - if( get_cursor_x() < 2 ) { - xposition -= 2 - get_cursor_x(); + if( get_cursor_x() < xS(2) ) { + xposition -= xS(2) - get_cursor_x(); result = 1; } else - if( get_cursor_x() >= view_w + 2 ) { - xposition += get_cursor_x() - (view_w + 2); + if( get_cursor_x() >= view_w + xS(2) ) { + xposition += get_cursor_x() - (view_w + xS(2)); result = 1; } @@ -3300,9 +3311,9 @@ int BC_ListBox::drag_stop_event() reposition_item(data, selection_number, top_level->cursor_x - drag_popup->get_w() / 2 - - LISTBOX_MARGIN - 2 + xposition, + LISTBOX_MARGIN - xS(2) + xposition, top_level->cursor_y - drag_popup->get_h() / 2 - - LISTBOX_MARGIN - 2 + yposition); + LISTBOX_MARGIN - yS(2) + yposition); } else // Move rows @@ -3437,8 +3448,8 @@ int BC_ListBox::activate(int take_focus) XTranslateCoordinates(top_level->display, parent_window->win, top_level->rootwin, wx, wy, &abs_x, &abs_y, &xwin); - if( x <= 0 ) x = 2; - if( y <= 0 ) y = 2; + if( x <= 0 ) x = xS(2); + if( y <= 0 ) y = yS(2); return activate(abs_x, abs_y); } @@ -3545,13 +3556,13 @@ int BC_ListBox::keypress_event() break; case LEFT: - xposition -= 10; + xposition -= xS(10); redraw = 1; result = 1; break; case RIGHT: - xposition += 10; + xposition += xS(10); redraw = 1; result = 1; break; diff --git a/cinelerra-5.1/guicast/bclistbox.h b/cinelerra-5.1/guicast/bclistbox.h index 6bdd2c04..e1e991a5 100644 --- a/cinelerra-5.1/guicast/bclistbox.h +++ b/cinelerra-5.1/guicast/bclistbox.h @@ -29,8 +29,6 @@ #include "bctoggle.h" #include "bccolors.h" -#define BCPOPUPLISTBOX_W 25 -#define BCPOPUPLISTBOX_H 25 class BC_ListBoxYScroll; class BC_ListBoxXScroll; @@ -250,11 +248,9 @@ public: int get_title_h(); int get_display_mode(); void set_justify(int value); - int get_w() { return is_popup ? BCPOPUPLISTBOX_W : popup_w; } - int get_h() { return is_popup ? BCPOPUPLISTBOX_H : popup_h; } - int gui_tooltip(const char *text) { - return is_popup && gui ? gui->show_tooltip(text, gui->get_w(),0, -1,-1) : -1; - } + int get_w(); + int get_h(); + int gui_tooltip(const char *text); int get_view_w() { return view_w; } int get_view_h() { return view_h; } int get_row_height() { return row_height; } diff --git a/cinelerra-5.1/guicast/bclistbox.inc b/cinelerra-5.1/guicast/bclistbox.inc index 0073019c..33f3fd86 100644 --- a/cinelerra-5.1/guicast/bclistbox.inc +++ b/cinelerra-5.1/guicast/bclistbox.inc @@ -37,11 +37,11 @@ #define ICON_TOP 1 // White space around text -#define LISTBOX_MARGIN 4 +#define LISTBOX_MARGIN xS(4) // Distance from sides of window -#define LISTBOX_BORDER 2 -#define ICON_MARGIN 2 -#define LISTBOX_INDENT 18 +#define LISTBOX_BORDER xS(2) +#define ICON_MARGIN xS(2) +#define LISTBOX_INDENT xS(18) // Justification for popup listbox #define LISTBOX_LEFT 0 diff --git a/cinelerra-5.1/guicast/bcmenu.C b/cinelerra-5.1/guicast/bcmenu.C index 2092fc8e..d0307c99 100644 --- a/cinelerra-5.1/guicast/bcmenu.C +++ b/cinelerra-5.1/guicast/bcmenu.C @@ -46,11 +46,7 @@ BC_Menu::~BC_Menu() } int BC_Menu::initialize(BC_WindowBase *top_level, - BC_MenuBar *menu_bar, - int x, - int y, - int w, - int h) + BC_MenuBar *menu_bar, int x, int y, int w, int h) { this->x = x; this->y = y; @@ -309,7 +305,7 @@ int BC_Menu::draw_title(int flash, int flush) menu_bar->set_color(resources->menu_title_text); menu_bar->set_font(MEDIUMFONT); - menu_bar->draw_text(x + 10 + text_offset, + menu_bar->draw_text(x + xS(10) + text_offset, h / 2 + menu_bar->get_text_ascent(MEDIUMFONT) / 2 + 1 + text_offset, text); if(flash) menu_bar->flash(flush); diff --git a/cinelerra-5.1/guicast/bcmenubar.C b/cinelerra-5.1/guicast/bcmenubar.C index 908567ec..7d7cc2b2 100644 --- a/cinelerra-5.1/guicast/bcmenubar.C +++ b/cinelerra-5.1/guicast/bcmenubar.C @@ -107,16 +107,16 @@ int BC_MenuBar::add_menu(BC_Menu* menu) // Get dimensions if(menu_titles.total == 0) - x = 2; + x = xS(2); else x = menu_titles.values[menu_titles.total - 1]->x + menu_titles.values[menu_titles.total - 1]->w; - w = get_text_width(MEDIUMFONT, menu->text) + 20; + w = get_text_width(MEDIUMFONT, menu->text) + xS(20); // get pointer menu_titles.append(menu); // initialize and draw - menu->initialize(top_level, this, x, 2, w, get_h() - 4); + menu->initialize(top_level, this, x, yS(2), w, get_h() - yS(4)); return 0; } diff --git a/cinelerra-5.1/guicast/bcmenuitem.C b/cinelerra-5.1/guicast/bcmenuitem.C index 1e9399b1..6653b14f 100644 --- a/cinelerra-5.1/guicast/bcmenuitem.C +++ b/cinelerra-5.1/guicast/bcmenuitem.C @@ -150,7 +150,7 @@ int BC_MenuItem::activate_submenu() &new_y, &tempwin); submenu->popup_menu = menu_popup->popup_menu; - submenu->activate_menu(new_x + 5, new_y, menu_popup->w - 10, h, 0, 0); + submenu->activate_menu(new_x + xS(5), new_y, menu_popup->w - xS(10), h, 0, 0); highlighted = 1; } return 0; @@ -311,13 +311,13 @@ int BC_MenuItem::draw() if(!strcmp(text, "-")) { menu_popup->get_popup()->set_color(DKGREY); - menu_popup->get_popup()->draw_line(5, y + h / 2, menu_popup->get_w() - 5, y + h / 2); + menu_popup->get_popup()->draw_line(xS(5), y + h / 2, menu_popup->get_w() - xS(5), y + h / 2); menu_popup->get_popup()->set_color(LTGREY); - menu_popup->get_popup()->draw_line(5, y + h / 2 + 1, menu_popup->get_w() - 5, y + h / 2 + 1); + menu_popup->get_popup()->draw_line(xS(5), y + h / 2 + 1, menu_popup->get_w() - xS(5), y + h / 2 + 1); } else { - int offset = 0; + int xoffset = 0, yoffset = 0; if(highlighted) { int y = this->y; @@ -351,7 +351,7 @@ int BC_MenuItem::draw() resources->menu_down, resources->menu_light); } - offset = 1; + xoffset = xS(1); yoffset = yS(1); } else // Highlighted @@ -385,23 +385,23 @@ int BC_MenuItem::draw() } if(checked) { -// menu_popup->get_popup()->draw_check(10 + offset, y + 2 + offset); +// menu_popup->get_popup()->draw_check(xS(10) + xoffset, y + 2 + yoffset); menu_popup->get_popup()->draw_pixmap(menu_popup->check, - offset, - y + (this->h - menu_popup->check->get_h()) / 2 + offset); + xoffset, + y + (this->h - menu_popup->check->get_h()) / 2 + yoffset); menu_popup->get_popup()->set_font(MEDIUMFONT); - menu_popup->get_popup()->draw_text(menu_popup->check->get_w() + offset, - y + h - text_line - 2 + offset, + menu_popup->get_popup()->draw_text(menu_popup->check->get_w() + xoffset, + y + h - text_line - 2 + yoffset, text); - menu_popup->get_popup()->draw_text(menu_popup->get_key_x() + offset, - y + h - text_line - 2 + offset, + menu_popup->get_popup()->draw_text(menu_popup->get_key_x() + xoffset, + y + h - text_line - 2 + yoffset, hotkey_text); } else { menu_popup->get_popup()->set_font(MEDIUMFONT); - menu_popup->get_popup()->draw_text(10 + offset, y + h - text_line - 2 + offset, text); - menu_popup->get_popup()->draw_text(menu_popup->get_key_x() + offset, y + h - text_line - 2 + offset, hotkey_text); + menu_popup->get_popup()->draw_text(xS(10) + xoffset, y + h - text_line - 2 + yoffset, text); + menu_popup->get_popup()->draw_text(menu_popup->get_key_x() + xoffset, y + h - text_line - 2 + yoffset, hotkey_text); } } return 0; diff --git a/cinelerra-5.1/guicast/bcmenupopup.C b/cinelerra-5.1/guicast/bcmenupopup.C index 6c4f5fe8..2c72354e 100644 --- a/cinelerra-5.1/guicast/bcmenupopup.C +++ b/cinelerra-5.1/guicast/bcmenupopup.C @@ -289,7 +289,7 @@ int BC_MenuPopup::activate_menu(int x, if(this->y + this->h > top_y1) this->y -= this->h + h; // Bottom justify // Avoid top of menu going out of screen if(this->y < 0) - this->y = 2; + this->y = yS(2); } else { @@ -300,7 +300,7 @@ int BC_MenuPopup::activate_menu(int x, if(this->x + this->w > top_x1) this->x = new_x - this->w; if(this->y + this->h > top_y1) this->y = new_y + h - this->h; } - top_x0 += 2; top_y0 += 2; + top_x0 += xS(2); top_y0 += yS(2); if( this->x < top_x0 ) this->x = top_x0; if( this->y < top_y0 ) this->y = top_y0; @@ -308,16 +308,12 @@ int BC_MenuPopup::activate_menu(int x, if(menu_bar) { popup = new BC_Popup(menu_bar, this->x, this->y, this->w, this->h, - top_level->get_resources()->menu_up, - 1, - menu_bar->bg_pixmap); + top_level->get_resources()->menu_up, 1, menu_bar->bg_pixmap); } else { popup = new BC_Popup(top_level, this->x, this->y, this->w, this->h, - top_level->get_resources()->menu_up, - 1, - 0); + top_level->get_resources()->menu_up, 1, 0); // popup->set_background(top_level->get_resources()->menu_bg); } draw_items(); @@ -377,28 +373,30 @@ int BC_MenuPopup::draw_items() int BC_MenuPopup::get_dimensions() { - int widest_text = 10, widest_key = 10; + int xs10 = xS(10), xs20 = xS(20); + int ys4 = yS(4), ys5 = yS(10); + int widest_text = xs10, widest_key = xs10; int text_w, key_w; int i = 0; // pad for border - h = 2; + h = yS(2); // Set up parameters in each item and get total h. for(i = 0; i < menu_items.total; i++) { - text_w = 10 + top_level->get_text_width(MEDIUMFONT, menu_items.values[i]->text); - if(menu_items.values[i]->checked) text_w += check->get_w() + 1; + text_w = xs10 + top_level->get_text_width(MEDIUMFONT, menu_items.values[i]->text); + if(menu_items.values[i]->checked) text_w += check->get_w() + xS(1); - key_w = 10 + top_level->get_text_width(MEDIUMFONT, menu_items.values[i]->hotkey_text); + key_w = xs10 + top_level->get_text_width(MEDIUMFONT, menu_items.values[i]->hotkey_text); if(text_w > widest_text) widest_text = text_w; if(key_w > widest_key) widest_key = key_w; if(!strcmp(menu_items.values[i]->text, "-")) - menu_items.values[i]->h = 5; + menu_items.values[i]->h = ys5; else { menu_items.values[i]->h = item_bg[0] ? item_bg[0]->get_h() : - top_level->get_text_height(MEDIUMFONT) + 4; + top_level->get_text_height(MEDIUMFONT) + ys4; } menu_items.values[i]->y = h; @@ -406,13 +404,13 @@ int BC_MenuPopup::get_dimensions() menu_items.values[i]->down = 0; h += menu_items.values[i]->h; } - w = widest_text + widest_key + 20; + w = widest_text + widest_key + xs20; w = MAX(w, top_level->get_resources()->min_menu_w); // pad for division - key_x = widest_text + 16; + key_x = widest_text + xS(16); // pad for border - h += 2; + h += yS(2); return 0; } diff --git a/cinelerra-5.1/guicast/bcmeter.C b/cinelerra-5.1/guicast/bcmeter.C index 6ece16f2..e4eb2bd9 100644 --- a/cinelerra-5.1/guicast/bcmeter.C +++ b/cinelerra-5.1/guicast/bcmeter.C @@ -249,8 +249,7 @@ void BC_Meter::get_divisions() { // Create tick mark current_pixel = (pixels - METER_MARGIN * 2 - 2) * - (current - min) / - (max - min) + 2; + (current - min) / (max - min) + 2; tick_pixels.append(current_pixel); // Create titles in selected positions @@ -260,9 +259,7 @@ void BC_Meter::get_divisions() (current - min > 4 && max - current > 4 && !(current % 5))) { int title_pixel = (pixels - - METER_MARGIN * 2) * - (current - min) / - (max - min); + METER_MARGIN * 2) * (current - min) / (max - min); sprintf(string, "%ld", labs(current)); new_string = new char[strlen(string) + 1]; strcpy(new_string, string); @@ -346,11 +343,11 @@ void BC_Meter::draw_titles(int flush) // Tick marks int tick_y = pixels - tick_pixels.values[i] - METER_MARGIN; set_color(get_resources()->meter_font_color); - draw_line(get_title_w() - 10 - 1, tick_y, get_title_w() - 1, tick_y); + draw_line(get_title_w() - xS(10) - 1, tick_y, get_title_w() - 1, tick_y); if(get_resources()->meter_3d) { set_color(BLACK); - draw_line(get_title_w() - 10, tick_y + 1, get_title_w(), tick_y + 1); + draw_line(get_title_w() - xS(10), tick_y + 1, get_title_w(), tick_y + 1); } } @@ -531,12 +528,8 @@ void BC_Meter::draw_face(int flush) draw_pixmap(images[image_number], - x + x1, - get_h() - pixel - in_span, - in_w, - in_span + 1, - in_x, - in_y); + x + x1, get_h() - pixel - in_span, + in_w, in_span + 1, in_x, in_y); } } } @@ -552,25 +545,18 @@ void BC_Meter::draw_face(int flush) if(downmix) { if(orientation == METER_HORIZ) - draw_pixmap(images[METER_DOWNMIX], - 0, - 0); + draw_pixmap(images[METER_DOWNMIX], 0, 0); else - draw_pixmap(images[METER_DOWNMIX], - x, + draw_pixmap(images[METER_DOWNMIX], x, get_h() - images[METER_DOWNMIX]->get_h()-1); } if(over_timer) { if(orientation == METER_HORIZ) - draw_pixmap(images[METER_OVER], - 20, - 2); + draw_pixmap(images[METER_OVER], xS(20), yS(2)); else - draw_pixmap(images[METER_OVER], - x, - get_h() - 100); + draw_pixmap(images[METER_OVER], x, get_h() - yS(100)); over_timer--; } diff --git a/cinelerra-5.1/guicast/bcnewfolder.C b/cinelerra-5.1/guicast/bcnewfolder.C index cc9d4b1b..2d73b49d 100644 --- a/cinelerra-5.1/guicast/bcnewfolder.C +++ b/cinelerra-5.1/guicast/bcnewfolder.C @@ -19,10 +19,11 @@ * */ -#include "condition.h" +#include "bcresources.h" #include "bcfilebox.h" #include "bcnewfolder.h" #include "bctitle.h" +#include "condition.h" #include "filesystem.h" #include "language.h" #include "mutex.h" @@ -30,22 +31,9 @@ #include - - - - - BC_NewFolder::BC_NewFolder(int x, int y, BC_FileBox *filebox) : BC_Window(filebox->get_newfolder_title(), - x, - y, - 320, - 120, - 0, - 0, - 0, - 0, - 1) + x, y, xS(320), yS(120), 0, 0, 0, 0, 1) { } @@ -57,13 +45,13 @@ BC_NewFolder::~BC_NewFolder() void BC_NewFolder::create_objects() { lock_window("BC_NewFolder::create_objects"); - int x = 10, y = 10; + int x = xS(10), y = yS(10); add_tool(new BC_Title(x, y, _("Enter the name of the folder:"))); - y += 20; - add_subwindow(textbox = new BC_TextBox(x, y, 300, 1, _("Untitled"))); - y += 30; + y += yS(20); + add_subwindow(textbox = new BC_TextBox(x, y, xS(300), 1, _("Untitled"))); + y += yS(30); add_subwindow(new BC_OKButton(this)); - x = get_w() - 100; + x = get_w() - xS(100); add_subwindow(new BC_CancelButton(this)); show_window(); unlock_window(); @@ -86,7 +74,7 @@ BC_NewFolderThread::BC_NewFolderThread(BC_FileBox *filebox) BC_NewFolderThread::~BC_NewFolderThread() { - interrupt(); + interrupt(); delete change_lock; delete completion_lock; } diff --git a/cinelerra-5.1/guicast/bcpan.C b/cinelerra-5.1/guicast/bcpan.C index e40910c3..d6da6081 100644 --- a/cinelerra-5.1/guicast/bcpan.C +++ b/cinelerra-5.1/guicast/bcpan.C @@ -91,11 +91,7 @@ int BC_Pan::initialize() BC_SubWindow::initialize(); temp_channel = new VFrame; temp_channel->set_use_shm(0); - temp_channel->reallocate(0, - -1, - 0, - 0, - 0, + temp_channel->reallocate(0, -1, 0, 0, 0, get_resources()->pan_data[PAN_CHANNEL]->get_w(), get_resources()->pan_data[PAN_CHANNEL]->get_h(), get_resources()->pan_data[PAN_CHANNEL]->get_color_model(), @@ -227,14 +223,8 @@ int BC_Pan::activate(int popup_x, int popup_y) active = 0; if (popup_x < 0 || popup_y < 0) { - XTranslateCoordinates(top_level->display, - win, - top_level->rootwin, - 0, - 0, - &x, - &y, - &tempwin); + XTranslateCoordinates(top_level->display, win, + top_level->rootwin, 0, 0, &x, &y, &tempwin); x -= (images[PAN_POPUP]->get_w() - get_w()) / 2; y -= (images[PAN_POPUP]->get_h() - get_h()) / 2; @@ -316,8 +306,8 @@ void BC_Pan::draw_popup() popup->flash(); } -#define PICON_W 6 -#define PICON_H 6 +#define PICON_W xS(6) +#define PICON_H yS(6) void BC_Pan::draw(int flash, int flush) { diff --git a/cinelerra-5.1/guicast/bcpixmap.C b/cinelerra-5.1/guicast/bcpixmap.C index 08491aee..5f5a46a9 100644 --- a/cinelerra-5.1/guicast/bcpixmap.C +++ b/cinelerra-5.1/guicast/bcpixmap.C @@ -78,28 +78,14 @@ BC_Pixmap::BC_Pixmap(BC_WindowBase *parent_window, if(use_opaque()) { opaque_bitmap->write_drawable(opaque_pixmap, - top_level->gc, - 0, - 0, - 0, - 0, - w, - h, - 1); + top_level->gc, 0, 0, 0, 0, w, h, 1); delete opaque_bitmap; } if(use_alpha()) { alpha_bitmap->write_drawable(alpha_pixmap, - copy_gc, - 0, - 0, - icon_offset ? 2 : 0, - icon_offset ? 2 : 0, - w, - h, - 1); + copy_gc, 0, 0, icon_offset ? 2 : 0, icon_offset ? 2 : 0, w, h, 1); delete alpha_bitmap; XFreeGC(top_level->display, copy_gc); @@ -202,20 +188,11 @@ int BC_Pixmap::initialize(BC_WindowBase *parent_window, int w, int h, int mode) gcvalues.function = GXcopy; alpha_pixmap = XCreatePixmap(top_level->display, - top_level->win, - w, - h, - 1); - + top_level->win, w, h, 1); alpha_gc = XCreateGC(top_level->display, - top_level->win, - gcmask, - &gcvalues); - + top_level->win, gcmask, &gcvalues); copy_gc = XCreateGC(top_level->display, - alpha_pixmap, - gcmask, - &gcvalues); + alpha_pixmap, gcmask, &gcvalues); #ifdef HAVE_XFT if(BC_WindowBase::get_resources()->use_xft) @@ -286,24 +263,13 @@ void BC_Pixmap::resize(int w, int h) void BC_Pixmap::copy_area(int x, int y, int w, int h, int x2, int y2) { XCopyArea(top_level->display, - opaque_pixmap, - opaque_pixmap, - top_level->gc, - x, - y, - w, - h, - x2, - y2); + opaque_pixmap, opaque_pixmap, top_level->gc, + x, y, w, h, x2, y2); } int BC_Pixmap::write_drawable(Drawable &pixmap, - int dest_x, - int dest_y, - int dest_w, - int dest_h, - int src_x, - int src_y) + int dest_x, int dest_y, int dest_w, int dest_h, + int src_x, int src_y) { //printf("BC_Pixmap::write_drawable 1\n"); if(dest_w < 0) @@ -322,29 +288,15 @@ int BC_Pixmap::write_drawable(Drawable &pixmap, { XSetClipOrigin(top_level->display, alpha_gc, dest_x - src_x, dest_y - src_y); XCopyArea(top_level->display, - this->opaque_pixmap, - pixmap, - alpha_gc, - src_x, - src_y, - dest_w, - dest_h, - dest_x, - dest_y); + this->opaque_pixmap, pixmap, alpha_gc, + src_x, src_y, dest_w, dest_h, dest_x, dest_y); } else if(use_opaque()) { XCopyArea(top_level->display, - this->opaque_pixmap, - pixmap, - top_level->gc, - src_x, - src_y, - dest_w, - dest_h, - dest_x, - dest_y); + this->opaque_pixmap, pixmap, top_level->gc, + src_x, src_y, dest_w, dest_h, dest_x, dest_y); } //printf("BC_Pixmap::write_drawable 2\n"); @@ -352,91 +304,32 @@ int BC_Pixmap::write_drawable(Drawable &pixmap, } void BC_Pixmap::draw_vframe(VFrame *frame, - int dest_x, - int dest_y, - int dest_w, - int dest_h, - int src_x, - int src_y) + int dest_x, int dest_y, int dest_w, int dest_h, + int src_x, int src_y) { parent_window->draw_vframe(frame, - dest_x, - dest_y, - dest_w, - dest_h, - src_x, - src_y, - 0, - 0, - this); + dest_x, dest_y, dest_w, dest_h, src_x, + src_y, 0, 0, this); } void BC_Pixmap::draw_pixmap(BC_Pixmap *pixmap, - int dest_x, - int dest_y, - int dest_w, - int dest_h, - int src_x, - int src_y) + int dest_x, int dest_y, int dest_w, int dest_h, + int src_x, int src_y) { pixmap->write_drawable(this->opaque_pixmap, - dest_x, - dest_y, - dest_w, - dest_h, - src_x, - src_y); + dest_x, dest_y, dest_w, dest_h, + src_x, src_y); } - - - - - - - - - -int BC_Pixmap::get_w() -{ - return w; -} - -int BC_Pixmap::get_h() -{ - return h; -} - -int BC_Pixmap::get_w_fixed() -{ - return w - 1; -} - -int BC_Pixmap::get_h_fixed() -{ - return h - 1; -} - -Pixmap BC_Pixmap::get_pixmap() -{ - return opaque_pixmap; -} - -Pixmap BC_Pixmap::get_alpha() -{ - return alpha_pixmap; -} - -int BC_Pixmap::use_opaque() -{ - return 1; -} - -int BC_Pixmap::use_alpha() -{ - return mode == PIXMAP_ALPHA; -} +int BC_Pixmap::get_w() { return w; } +int BC_Pixmap::get_h() { return h; } +int BC_Pixmap::get_w_fixed() { return w - 1; } +int BC_Pixmap::get_h_fixed() { return h - 1; } +Pixmap BC_Pixmap::get_pixmap() { return opaque_pixmap; } +Pixmap BC_Pixmap::get_alpha() { return alpha_pixmap; } +int BC_Pixmap::use_opaque() { return 1; } +int BC_Pixmap::use_alpha() { return mode == PIXMAP_ALPHA; } void BC_Pixmap::enable_opengl() diff --git a/cinelerra-5.1/guicast/bcpopupmenu.C b/cinelerra-5.1/guicast/bcpopupmenu.C index ee78dbb3..62a2b403 100644 --- a/cinelerra-5.1/guicast/bcpopupmenu.C +++ b/cinelerra-5.1/guicast/bcpopupmenu.C @@ -37,8 +37,8 @@ #define TOTAL_IMAGES 3 -#define TRIANGLE_W 10 -#define TRIANGLE_H 10 +#define TRIANGLE_W xS(10) +#define TRIANGLE_H yS(10) BC_PopupMenu::BC_PopupMenu(int x, int y, int w, const char *text, @@ -118,8 +118,8 @@ int BC_PopupMenu::initialize() } else { // Move outside window if no title - x = -10; y = -10; - w = 10; h = 10; + x = -TRIANGLE_W; y = -TRIANGLE_H; + w = TRIANGLE_W; h = TRIANGLE_H; } BC_SubWindow::initialize(); @@ -293,7 +293,7 @@ int BC_PopupMenu::menu_activate() w, h, 0, 1); } else - menu_popup->activate_menu(x+3, y+3, w, h, 0, 1); + menu_popup->activate_menu(x+xS(3), y+yS(3), w, h, 0, 1); popup_down = 1; if( use_title ) draw_title(1); } diff --git a/cinelerra-5.1/guicast/bcpot.C b/cinelerra-5.1/guicast/bcpot.C index 60807911..b979f915 100644 --- a/cinelerra-5.1/guicast/bcpot.C +++ b/cinelerra-5.1/guicast/bcpot.C @@ -141,8 +141,8 @@ int BC_Pot::angle_to_coords(int &x1, int &y1, int &x2, int &y2, float angle) y1 = resources->pot_y1; if(status == POT_DN) { - x1 += resources->pot_offset; - y1 += resources->pot_offset; + x1 += xS(resources->pot_offset); + y1 += yS(resources->pot_offset); } while(angle < 0) angle += 360; @@ -406,21 +406,8 @@ int BC_Pot::cursor_motion_event() } - - - - - - - - - -BC_FPot::BC_FPot(int x, - int y, - float value, - float minvalue, - float maxvalue, - VFrame **data) +BC_FPot::BC_FPot(int x, int y, + float value, float minvalue, float maxvalue, VFrame **data) : BC_Pot(x, y, data) { this->value = value; @@ -505,18 +492,8 @@ void BC_FPot::update(float value, float minvalue, float maxvalue) } - - - - - - -BC_IPot::BC_IPot(int x, - int y, - int64_t value, - int64_t minvalue, - int64_t maxvalue, - VFrame **data) +BC_IPot::BC_IPot(int x, int y, + int64_t value, int64_t minvalue, int64_t maxvalue, VFrame **data) : BC_Pot(x, y, data) { this->value = value; @@ -594,14 +571,7 @@ void BC_IPot::update(int64_t value, int64_t minvalue, int64_t maxvalue) } - - - - -BC_QPot::BC_QPot(int x, - int y, - int64_t value, - VFrame **data) +BC_QPot::BC_QPot(int x, int y, int64_t value, VFrame **data) : BC_Pot(x, y, data) { this->value = Freq::fromfreq(value); @@ -667,18 +637,8 @@ void BC_QPot::update(int64_t value) } - - - - - - -BC_PercentagePot::BC_PercentagePot(int x, - int y, - float value, - float minvalue, - float maxvalue, - VFrame **data) +BC_PercentagePot::BC_PercentagePot(int x, int y, + float value, float minvalue, float maxvalue, VFrame **data) : BC_Pot(x, y, data) { this->value = value; @@ -742,10 +702,3 @@ void BC_PercentagePot::update(float value) } } - - - - - - - diff --git a/cinelerra-5.1/guicast/bcprogressbox.C b/cinelerra-5.1/guicast/bcprogressbox.C index fde95804..1fe29fda 100644 --- a/cinelerra-5.1/guicast/bcprogressbox.C +++ b/cinelerra-5.1/guicast/bcprogressbox.C @@ -116,13 +116,8 @@ void BC_ProgressBox::unlock_window() BC_ProgressWindow::BC_ProgressWindow(int x, int y) : BC_Window(_("Progress"), - x, - y, - 340, - 100 + get_resources()->ok_images[0]->get_h(), - 0, - 0, - 0) + x, y, xS(340), yS(100) + get_resources()->ok_images[0]->get_h(), + 0, 0, 0) { } @@ -132,13 +127,13 @@ BC_ProgressWindow::~BC_ProgressWindow() int BC_ProgressWindow::create_objects(const char *text, int64_t length) { - int x = 10, y = 10; + int x = xS(10), y = yS(10); lock_window("BC_ProgressWindow::create_objects"); // Recalculate width based on text if(text) { int text_w = get_text_width(MEDIUMFONT, text); - int new_w = text_w + x + 10, scr_w = get_screen_w(0, -1); + int new_w = text_w + x + xS(10), scr_w = get_screen_w(0, -1); if(new_w > scr_w) new_w = scr_w; if(new_w > get_w()) { resize_window(new_w, get_h()); @@ -147,14 +142,11 @@ int BC_ProgressWindow::create_objects(const char *text, int64_t length) this->text = text; add_tool(caption = new BC_Title(x, y, text)); - y += caption->get_h() + 20; - add_tool(bar = new BC_ProgressBar(x, y, get_w() - 20, length)); + y += caption->get_h() + yS(20); + add_tool(bar = new BC_ProgressBar(x, y, get_w() - xS(20), length)); add_tool(new BC_CancelButton(this)); show_window(1); unlock_window(); return 0; } - - - diff --git a/cinelerra-5.1/guicast/bcrename.C b/cinelerra-5.1/guicast/bcrename.C index 836856da..58da34b4 100644 --- a/cinelerra-5.1/guicast/bcrename.C +++ b/cinelerra-5.1/guicast/bcrename.C @@ -22,6 +22,7 @@ #include "condition.h" #include "bcfilebox.h" #include "bcrename.h" +#include "bcresources.h" #include "bctitle.h" #include "filesystem.h" #include "language.h" @@ -31,22 +32,9 @@ #include - - - - - BC_Rename::BC_Rename(BC_RenameThread *thread, int x, int y, BC_FileBox *filebox) : BC_Window(filebox->get_rename_title(), - x, - y, - 320, - 120, - 0, - 0, - 0, - 0, - 1) + x, y, xS(320), yS(120), 0, 0, 0, 0, 1) { this->thread = thread; } @@ -58,14 +46,14 @@ BC_Rename::~BC_Rename() void BC_Rename::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); lock_window("BC_Rename::create_objects"); add_tool(new BC_Title(x, y, _("Enter a new name for the file:"))); - y += 20; - add_subwindow(textbox = new BC_TextBox(x, y, 300, 1, thread->orig_name)); - y += 30; + y += yS(20); + add_subwindow(textbox = new BC_TextBox(x, y, xS(300), 1, thread->orig_name)); + y += yS(30); add_subwindow(new BC_OKButton(this)); - x = get_w() - 100; + x = get_w() - xS(100); add_subwindow(new BC_CancelButton(this)); show_window(); unlock_window(); @@ -88,7 +76,7 @@ BC_RenameThread::BC_RenameThread(BC_FileBox *filebox) BC_RenameThread::~BC_RenameThread() { - interrupt(); + interrupt(); delete change_lock; delete completion_lock; } diff --git a/cinelerra-5.1/guicast/bcresources.C b/cinelerra-5.1/guicast/bcresources.C index 16f53f97..2683bd20 100644 --- a/cinelerra-5.1/guicast/bcresources.C +++ b/cinelerra-5.1/guicast/bcresources.C @@ -366,8 +366,23 @@ BC_Resources::BC_Resources() { synchronous = 0; vframe_shm = 0; - double default_scale = 1.0; // display_size/1000.; - char *env = getenv("BC_FONT_DEBUG"); + double default_scale = 1; + char *env = getenv("BC_SCALE"); + if( !env ) { + BC_DisplayInfo info; + int wx, wy, ww, wh; + int cins = info.xinerama_big_screen(); + if( !info.xinerama_geometry(cins, wx, wy, ww, wh) ) { + x_scale = ww / 1920.; + y_scale = wh / 1080.; + default_scale = bmin(x_scale, y_scale); + } + } + else { + if( (default_scale = atof(env)) <= 0 ) default_scale = 1; + x_scale = y_scale = default_scale; + } + env = getenv("BC_FONT_DEBUG"); font_debug = env ? atoi(env) : 0; env = getenv("BC_FONT_SCALE"); font_scale = env ? atof(env) : default_scale; @@ -732,7 +747,7 @@ new_vframes(10,default_vscroll_data, listbox_title_overlap = 0; listbox_title_margin = 0; listbox_title_color = BLACK; - listbox_title_hotspot = 5; + listbox_title_hotspot = xS(5); listbox_border1 = DKGREY; listbox_border2_hi = RED; @@ -748,7 +763,7 @@ new_vframes(10,default_vscroll_data, pan_data = 0; pan_text_color = YELLOW; - generic_button_margin = 15; + generic_button_margin = xS(15); draw_clock_background=1; use_shm = -1; @@ -800,9 +815,9 @@ new_vframes(10,default_vscroll_data, popupmenu_images = 0; - popupmenu_margin = 10; + popupmenu_margin = xS(10); popupmenu_btnup = 1; - popupmenu_triangle_margin = 10; + popupmenu_triangle_margin = xS(10); min_menu_w = 0; menu_title_text = BLACK; @@ -841,24 +856,24 @@ new_vframes(10,default_vscroll_data, tooltips_enabled = 1; textbox_focus_policy = 0; - filebox_margin = 110; - dirbox_margin = 90; + filebox_margin = yS(110); + dirbox_margin = yS(90); filebox_mode = LISTBOX_TEXT; sprintf(filebox_filter, "*"); - filebox_w = 640; - filebox_h = 480; + filebox_w = xS(640); + filebox_h = yS(480); filebox_columntype[0] = FILEBOX_NAME; filebox_columntype[1] = FILEBOX_SIZE; filebox_columntype[2] = FILEBOX_DATE; filebox_columntype[3] = FILEBOX_EXTENSION; - filebox_columnwidth[0] = 200; - filebox_columnwidth[1] = 100; - filebox_columnwidth[2] = 100; - filebox_columnwidth[3] = 100; + filebox_columnwidth[0] = xS(200); + filebox_columnwidth[1] = xS(100); + filebox_columnwidth[2] = xS(100); + filebox_columnwidth[3] = xS(100); dirbox_columntype[0] = FILEBOX_NAME; dirbox_columntype[1] = FILEBOX_DATE; - dirbox_columnwidth[0] = 200; - dirbox_columnwidth[1] = 100; + dirbox_columnwidth[0] = xS(200); + dirbox_columnwidth[1] = xS(100); filebox_text_images = default_filebox_text_images; filebox_icons_images = default_filebox_icons_images; @@ -880,8 +895,8 @@ new_vframes(10,default_vscroll_data, pot_images = default_pot_images; pot_offset = 2; - pot_x1 = pot_images[0]->get_w() / 2 - pot_offset; - pot_y1 = pot_images[0]->get_h() / 2 - pot_offset; + pot_x1 = pot_images[0]->get_w() / 2 - xS(pot_offset); + pot_y1 = pot_images[0]->get_h() / 2 - yS(pot_offset); pot_r = pot_x1; pot_needle_color = BLACK; @@ -891,7 +906,7 @@ new_vframes(10,default_vscroll_data, ymeter_images = 0; meter_font = SMALLFONT_3D; meter_font_color = RED; - meter_title_w = 20; + meter_title_w = xS(20); meter_3d = 1; medium_7segment = default_medium_7segment; @@ -907,11 +922,8 @@ new_vframes(10,default_vscroll_data, use_xft = 0; #endif - - drag_radius = 10; + drag_radius = xS(10); recursive_resizing = 1; - - } void BC_Resources::del_vframes(VFrame *vframes[], int n) diff --git a/cinelerra-5.1/guicast/bcresources.h b/cinelerra-5.1/guicast/bcresources.h index 369d196c..888ab4ed 100644 --- a/cinelerra-5.1/guicast/bcresources.h +++ b/cinelerra-5.1/guicast/bcresources.h @@ -308,6 +308,7 @@ public: int directory_color; int file_color; double font_scale, icon_scale; + double x_scale, y_scale; // fonts static const char *small_font, *small_font2; static const char *medium_font, *medium_font2; diff --git a/cinelerra-5.1/guicast/bcscrollbar.C b/cinelerra-5.1/guicast/bcscrollbar.C index a148bc30..481bda09 100644 --- a/cinelerra-5.1/guicast/bcscrollbar.C +++ b/cinelerra-5.1/guicast/bcscrollbar.C @@ -144,7 +144,7 @@ void BC_ScrollBar::draw(int flush) //printf("BC_ScrollBar::draw 1 %d %d\n", selection_status, highlight_status == SCROLL_BACKARROW); // Too small to draw anything - if(get_w() < get_arrow_pixels() * 2 + 5) + if(get_w() < get_arrow_pixels() * 2 + xS(5)) { draw_3segmenth(0, 0, @@ -244,7 +244,7 @@ void BC_ScrollBar::draw(int flush) case SCROLL_VERT: // Too small to draw anything - if(get_h() < get_arrow_pixels() * 2 + 5) + if(get_h() < get_arrow_pixels() * 2 + yS(5)) { draw_3segmentv(0, 0, diff --git a/cinelerra-5.1/guicast/bcslider.C b/cinelerra-5.1/guicast/bcslider.C index 882e5c9c..f8b53fe0 100644 --- a/cinelerra-5.1/guicast/bcslider.C +++ b/cinelerra-5.1/guicast/bcslider.C @@ -35,14 +35,8 @@ -BC_Slider::BC_Slider(int x, - int y, - int pixels, - int pointer_motion_range, - VFrame **images, - int show_number, - int vertical, - int use_caption) +BC_Slider::BC_Slider(int x, int y, int pixels, int pointer_motion_range, VFrame **images, + int show_number, int vertical, int use_caption) : BC_SubWindow(x, y, 0, 0, -1) { this->images = images; @@ -66,8 +60,7 @@ BC_Slider::BC_Slider(int x, BC_Slider::~BC_Slider() { - for(int i = 0; i < SLIDER_IMAGES; i++) - { + for(int i = 0; i < SLIDER_IMAGES; i++) { if(pixmaps[i]) delete pixmaps[i]; } if(pixmaps) delete [] pixmaps; @@ -75,8 +68,7 @@ BC_Slider::~BC_Slider() int BC_Slider::initialize() { - if(!images) - { + if(!images) { this->images = vertical ? BC_WindowBase::get_resources()->vertical_slider_data : BC_WindowBase::get_resources()->horizontal_slider_data; @@ -84,8 +76,7 @@ int BC_Slider::initialize() set_images(images); - if(vertical) - { + if(vertical) { w = images[SLIDER_BG_UP]->get_w(); h = pixels; } @@ -175,7 +166,7 @@ void BC_Slider::show_value_tooltip() //printf("BC_Slider::show_value_tooltip %s\n", get_caption()); set_tooltip(get_caption()); keypress_tooltip_timer = 2000; - show_tooltip(50); + show_tooltip(xS(50)); } @@ -399,28 +390,10 @@ void BC_Slider::set_pointer_motion_range(int value) } - - - -BC_ISlider::BC_ISlider(int x, - int y, - int vertical, - int pixels, - int pointer_motion_range, - int64_t minvalue, - int64_t maxvalue, - int64_t value, - int use_caption, - VFrame **data, - int *output) - : BC_Slider(x, - y, - pixels, - pointer_motion_range, - data, - 1, - vertical, - use_caption) +BC_ISlider::BC_ISlider(int x, int y, int vertical, int pixels, int pointer_motion_range, + int64_t minvalue, int64_t maxvalue, int64_t value, int use_caption, + VFrame **data, int *output) + : BC_Slider(x, y, pixels, pointer_motion_range, data, 1, vertical, use_caption) { this->minvalue = minvalue; this->maxvalue = maxvalue; @@ -572,30 +545,10 @@ int BC_ISlider::handle_event() } - - - - - - -BC_FSlider::BC_FSlider(int x, - int y, - int vertical, - int pixels, - int pointer_motion_range, - float minvalue, - float maxvalue, - float value, - int use_caption, +BC_FSlider::BC_FSlider(int x, int y, int vertical, int pixels, int pointer_motion_range, + float minvalue, float maxvalue, float value, int use_caption, VFrame **data) - : BC_Slider(x, - y, - pixels, - pointer_motion_range, - data, - 1, - vertical, - use_caption) + : BC_Slider(x, y, pixels, pointer_motion_range, data, 1, vertical, use_caption) { this->minvalue = minvalue; this->maxvalue = maxvalue; @@ -734,12 +687,7 @@ int BC_FSlider::update_selection(int cursor_x, int cursor_y) if(value < minvalue) value = minvalue; button_pixel = value_to_pixel(); // printf("BC_FSlider::update_selection 1 %d %d %d %d %f %f\n", -// pointer_motion_range, -// min_pixel, -// max_pixel, -// cursor_x, -// precision, -// value); +// pointer_motion_range, min_pixel, max_pixel, cursor_x, precision, value); if(old_value != value) { @@ -760,26 +708,10 @@ void BC_FSlider::set_pagination(float small_change, float big_change) } -BC_PercentageSlider::BC_PercentageSlider(int x, - int y, - int vertical, - int pixels, - int pointer_motion_range, - float minvalue, - float maxvalue, - float value, - int use_caption, - VFrame **data) - : BC_FSlider(x, - y, - vertical, - pixels, - pointer_motion_range, - minvalue, - maxvalue, - value, - use_caption, - data) +BC_PercentageSlider::BC_PercentageSlider(int x, int y, int vertical, int pixels, int pointer_motion_range, + float minvalue, float maxvalue, float value, int use_caption, + VFrame **data) + : BC_FSlider(x, y, vertical, pixels, pointer_motion_range, minvalue, maxvalue, value, use_caption, data) { } diff --git a/cinelerra-5.1/guicast/bcsubwindow.C b/cinelerra-5.1/guicast/bcsubwindow.C index 40c5e2f6..867b8589 100644 --- a/cinelerra-5.1/guicast/bcsubwindow.C +++ b/cinelerra-5.1/guicast/bcsubwindow.C @@ -25,10 +25,8 @@ BC_SubWindow::BC_SubWindow(int x, int y, int w, int h, int bg_color) { - this->x = x; - this->y = y; - this->w = w; - this->h = h; + this->x = x; this->y = y; + this->w = w; this->h = h; this->bg_color = bg_color; //printf("BC_SubWindow::BC_SubWindow 1\n"); } @@ -47,10 +45,6 @@ int BC_SubWindow::initialize() } - - - - BC_SubWindowList::BC_SubWindowList() : ArrayList() { diff --git a/cinelerra-5.1/guicast/bcsynchronous.C b/cinelerra-5.1/guicast/bcsynchronous.C index 9e49bf56..4c64b66f 100644 --- a/cinelerra-5.1/guicast/bcsynchronous.C +++ b/cinelerra-5.1/guicast/bcsynchronous.C @@ -557,9 +557,3 @@ BC_WindowBase* BC_Synchronous::get_window() return current_window; } - - - - - - diff --git a/cinelerra-5.1/guicast/bctextbox.C b/cinelerra-5.1/guicast/bctextbox.C index b871692c..128d514b 100644 --- a/cinelerra-5.1/guicast/bctextbox.C +++ b/cinelerra-5.1/guicast/bctextbox.C @@ -2861,12 +2861,8 @@ void BC_TumbleTextBox::reposition_window(int x, int y) this->x = x; this->y = y; - textbox->reposition_window(x, - y, - text_w, - 1); - tumbler->reposition_window(x + textbox->get_w(), - y); + textbox->reposition_window(x, y, text_w, 1); + tumbler->reposition_window(x + textbox->get_w(), y); // if(flush) parent_window->flush(); } diff --git a/cinelerra-5.1/guicast/bctitle.C b/cinelerra-5.1/guicast/bctitle.C index 57d1e093..1bda6e35 100644 --- a/cinelerra-5.1/guicast/bctitle.C +++ b/cinelerra-5.1/guicast/bctitle.C @@ -193,7 +193,7 @@ void BC_Title::get_size(BC_WindowBase *gui, int font, const char *text, int fixe } h *= gui->get_text_height(font); - w += 5; + w += xS(5); if(fixed_w > 0) w = fixed_w; } diff --git a/cinelerra-5.1/guicast/bctoggle.C b/cinelerra-5.1/guicast/bctoggle.C index 01832bd4..fdc963b6 100644 --- a/cinelerra-5.1/guicast/bctoggle.C +++ b/cinelerra-5.1/guicast/bctoggle.C @@ -90,7 +90,7 @@ void BC_Toggle::calculate_extents(BC_WindowBase *gui, *h = frame->get_h(); *toggle_x = 0; *toggle_y = 0; - *text_x = *w + 5; + *text_x = *w + xS(5); *text_y = 0; *text_w = 0; *text_h = 0; diff --git a/cinelerra-5.1/guicast/bctumble.C b/cinelerra-5.1/guicast/bctumble.C index e95f8abb..1a807d4d 100644 --- a/cinelerra-5.1/guicast/bctumble.C +++ b/cinelerra-5.1/guicast/bctumble.C @@ -113,13 +113,7 @@ int BC_Tumbler::set_images(VFrame **data) int BC_Tumbler::draw_face(int flush) { draw_top_background(parent_window, 0, 0, w, h); - pixmap->draw_pixmap(images[status], - 0, - 0, - w, - h, - 0, - 0); + pixmap->draw_pixmap(images[status], 0, 0, w, h, 0, 0); flash(flush); return 0; } @@ -259,8 +253,6 @@ int BC_Tumbler::cursor_motion_event() } - - BC_ITumbler::BC_ITumbler(BC_TextBox *textbox, int64_t min, int64_t max, int x, int y) : BC_Tumbler(x, y) { @@ -307,14 +299,6 @@ void BC_ITumbler::set_boundaries(int64_t min, int64_t max) } - - - - - - - - BC_FTumbler::BC_FTumbler(BC_TextBox *textbox, float min, float max, diff --git a/cinelerra-5.1/guicast/bcwindow.C b/cinelerra-5.1/guicast/bcwindow.C index 66686686..cc7d82ba 100644 --- a/cinelerra-5.1/guicast/bcwindow.C +++ b/cinelerra-5.1/guicast/bcwindow.C @@ -20,6 +20,7 @@ */ #include "bcdisplayinfo.h" +#include "bcresources.h" #include "bcwindow.h" #include diff --git a/cinelerra-5.1/guicast/bcwindow.h b/cinelerra-5.1/guicast/bcwindow.h index 2fec0ccc..29637d39 100644 --- a/cinelerra-5.1/guicast/bcwindow.h +++ b/cinelerra-5.1/guicast/bcwindow.h @@ -40,5 +40,4 @@ public: private: }; - #endif diff --git a/cinelerra-5.1/guicast/bcwindowbase.C b/cinelerra-5.1/guicast/bcwindowbase.C index 93b3d455..ad25943b 100644 --- a/cinelerra-5.1/guicast/bcwindowbase.C +++ b/cinelerra-5.1/guicast/bcwindowbase.C @@ -69,17 +69,8 @@ BC_ResizeCall::BC_ResizeCall(int w, int h) } - - - - - int BC_WindowBase::shm_completion_event = -1; - - - BC_Resources BC_WindowBase::resources; - Window XGroupLeader = 0; Mutex BC_KeyboardHandlerLock::keyboard_listener_mutex("keyboard_listener",0); @@ -2092,15 +2083,8 @@ int BC_WindowBase::init_colors() char *data = 0; XImage *ximage; ximage = XCreateImage(top_level->display, - top_level->vis, - top_level->default_depth, - ZPixmap, - 0, - data, - 16, - 16, - 8, - 0); + top_level->vis, top_level->default_depth, + ZPixmap, 0, data, 16, 16, 8, 0); bits_per_pixel = ximage->bits_per_pixel; XDestroyImage(ximage); @@ -3880,13 +3864,13 @@ int BC_WindowBase::get_abs_cursor_y(int lock_window) void BC_WindowBase::get_pop_cursor(int &px, int &py, int lock_window) { - int margin = 100; + int xmargin = xS(100), ymargin = yS(100); get_abs_cursor(px, py, lock_window); - if( px < margin ) px = margin; - if( py < margin ) py = margin; - int wd = get_screen_w(lock_window,-1) - margin; + if( px < xmargin ) px = xmargin; + if( py < ymargin ) py = ymargin; + int wd = get_screen_w(lock_window,-1) - xmargin; if( px > wd ) px = wd; - int ht = get_screen_h(lock_window,-1) - margin; + int ht = get_screen_h(lock_window,-1) - ymargin; if( py > ht ) py = ht; } int BC_WindowBase::get_pop_cursor_x(int lock_window) @@ -4147,21 +4131,15 @@ int BC_WindowBase::reposition_window(int x, int y, int w, int h) { // KDE shifts window right and down. // FVWM leaves window alone and adds border around it. - XMoveResizeWindow(top_level->display, - win, + XMoveResizeWindow(top_level->display, win, x - BC_DisplayInfo::auto_reposition_x, y - BC_DisplayInfo::auto_reposition_y, - this->w, - this->h); + this->w, this->h); } else { - XMoveResizeWindow(top_level->display, - win, - x, - y, - this->w, - this->h); + XMoveResizeWindow(top_level->display, win, x, y, + this->w, this->h); } if(resize) @@ -4381,12 +4359,8 @@ int BC_WindowBase::save_defaults(BC_Hash *defaults) // For some reason XTranslateCoordinates can take a long time to return. // We work around this by only calling it when the event windows are different. -void BC_WindowBase::translate_coordinates(Window src_w, - Window dest_w, - int src_x, - int src_y, - int *dest_x_return, - int *dest_y_return) +void BC_WindowBase::translate_coordinates(Window src_w, Window dest_w, + int src_x, int src_y, int *dest_x_return, int *dest_y_return) { Window tempwin = 0; //Timer timer; @@ -4398,14 +4372,8 @@ void BC_WindowBase::translate_coordinates(Window src_w, } else { - XTranslateCoordinates(top_level->display, - src_w, - dest_w, - src_x, - src_y, - dest_x_return, - dest_y_return, - &tempwin); + XTranslateCoordinates(top_level->display, src_w, dest_w, + src_x, src_y, dest_x_return, dest_y_return, &tempwin); //printf("BC_WindowBase::translate_coordinates 1 %lld\n", timer.get_difference()); } } @@ -4421,10 +4389,6 @@ void BC_WindowBase::get_win_coordinates(int abs_x, int abs_y, int *x, int *y) } - - - - #ifdef HAVE_LIBXXF86VM void BC_WindowBase::closest_vm(int *vm, int *width, int *height) { diff --git a/cinelerra-5.1/guicast/bcwindowbase.h b/cinelerra-5.1/guicast/bcwindowbase.h index f231c6d2..a3901098 100644 --- a/cinelerra-5.1/guicast/bcwindowbase.h +++ b/cinelerra-5.1/guicast/bcwindowbase.h @@ -97,7 +97,9 @@ #include #endif - +// scaled x,y unit +#define xS(v) (BC_WindowBase::get_resources()->x_scale*(v)) +#define yS(v) (BC_WindowBase::get_resources()->y_scale*(v)) #ifdef HAVE_GL //typedef void* GLXContext; diff --git a/cinelerra-5.1/guicast/bcwindowdraw.C b/cinelerra-5.1/guicast/bcwindowdraw.C index 76a47a73..7164bab7 100644 --- a/cinelerra-5.1/guicast/bcwindowdraw.C +++ b/cinelerra-5.1/guicast/bcwindowdraw.C @@ -178,12 +178,7 @@ void BC_WindowBase::draw_utf8_text(int x, int y, if(top_level->get_xft_struct(top_level->current_font)) { - draw_xft_text(x, - y, - text, - length, - pixmap, - 1); + draw_xft_text(x, y, text, length, pixmap, 1); return; } BT @@ -195,22 +190,15 @@ void BC_WindowBase::draw_utf8_text(int x, int y, { XmbDrawString(top_level->display, pixmap ? pixmap->opaque_pixmap : this->pixmap->opaque_pixmap, - top_level->get_curr_fontset(), - top_level->gc, - x, - y, - &text[j], - i - j); + top_level->get_curr_fontset(), top_level->gc, + x, y, &text[j], i - j); } else { XDrawString(top_level->display, pixmap ? pixmap->opaque_pixmap : this->pixmap->opaque_pixmap, top_level->gc, - x, - y, - &text[j], - i - j); + x, y, &text[j], i - j); } j = i + 1; @@ -595,7 +583,7 @@ void BC_WindowBase::draw_colored_box(int x, int y, int w, int h, int down, int h void BC_WindowBase::draw_border(char *text, int x, int y, int w, int h) { - int left_indent = 20; + int left_indent = xS(20); int lx, ly, ux, uy; h--; w--; @@ -611,16 +599,16 @@ void BC_WindowBase::draw_border(char *text, int x, int y, int w, int h) } set_color(top_level->get_resources()->button_shadow); - draw_line(x, y, x + left_indent - 5, y); + draw_line(x, y, x + left_indent - xS(5), y); draw_line(x, y, x, uy); - draw_line(x + left_indent + 5 + get_text_width(MEDIUMFONT, text), y, ux, y); + draw_line(x + left_indent + xS(5) + get_text_width(MEDIUMFONT, text), y, ux, y); draw_line(x, y, x, uy); draw_line(ux, ly, ux, uy); draw_line(lx, uy, ux, uy); set_color(top_level->get_resources()->button_light); - draw_line(lx, ly, x + left_indent - 5 - 1, ly); + draw_line(lx, ly, x + left_indent - xS(5) - 1, ly); draw_line(lx, ly, lx, uy - 1); - draw_line(x + left_indent + 5 + get_text_width(MEDIUMFONT, text), ly, ux - 1, ly); + draw_line(x + left_indent + xS(5) + get_text_width(MEDIUMFONT, text), ly, ux - 1, ly); draw_line(lx, ly, lx, uy - 1); draw_line(x + w, y, x + w, y + h); draw_line(x, y + h, x + w, y + h); @@ -638,13 +626,8 @@ void BC_WindowBase::draw_triangle_down_flat(int x, int y, int w, int h) point[1].x = x3; point[1].y = y1; point[2].x = x1; point[2].y = y1; - XFillPolygon(top_level->display, - pixmap->opaque_pixmap, - top_level->gc, - (XPoint *)point, - 3, - Nonconvex, - CoordModeOrigin); + XFillPolygon(top_level->display, pixmap->opaque_pixmap, top_level->gc, + (XPoint *)point, 3, Nonconvex, CoordModeOrigin); draw_line(x1,y1, x3,y1); } @@ -662,13 +645,8 @@ void BC_WindowBase::draw_triangle_up(int x, int y, int w, int h, point[1].y = y2; point[2].x = x1; point[2].y = y2; set_color(middle); - XFillPolygon(top_level->display, - pixmap->opaque_pixmap, - top_level->gc, - (XPoint *)point, - 3, - Nonconvex, - CoordModeOrigin); + XFillPolygon(top_level->display, pixmap->opaque_pixmap, top_level->gc, + (XPoint *)point, 3, Nonconvex, CoordModeOrigin); // bottom and top right set_color(shadow1); @@ -797,14 +775,16 @@ void BC_WindowBase::draw_triangle_right(int x, int y, int w, int h, void BC_WindowBase::draw_check(int x, int y) { - const int w = 15, h = 15; - draw_line(x + 3, y + h / 2 + 0, x + 6, y + h / 2 + 2); - draw_line(x + 3, y + h / 2 + 1, x + 6, y + h / 2 + 3); - draw_line(x + 6, y + h / 2 + 2, x + w - 4, y + h / 2 - 3); - draw_line(x + 3, y + h / 2 + 2, x + 6, y + h / 2 + 4); - draw_line(x + 6, y + h / 2 + 2, x + w - 4, y + h / 2 - 3); - draw_line(x + 6, y + h / 2 + 3, x + w - 4, y + h / 2 - 2); - draw_line(x + 6, y + h / 2 + 4, x + w - 4, y + h / 2 - 1); + int xs3 = xS(3), xs4 = xS(4), xs6 = xS(6); + int ys1 = yS(1), ys2 = yS(2), ys3 = yS(3), ys4 = yS(4); + const int w = xS(15), h = yS(15), yh2 = y + h/2; + draw_line(x + xs3, yh2 + 0, x + xs6, yh2 + ys2); + draw_line(x + xs3, yh2 + ys1, x + xs6, yh2 + ys3); + draw_line(x + xs6, yh2 + ys2, x + w - xs4, yh2 - ys3); + draw_line(x + xs3, yh2 + ys2, x + xs6, yh2 + ys4); + draw_line(x + xs6, yh2 + ys2, x + w - xs4, yh2 - ys3); + draw_line(x + xs6, yh2 + ys3, x + w - xs4, yh2 - ys2); + draw_line(x + xs6, yh2 + ys4, x + w - xs4, yh2 - ys1); } void BC_WindowBase::draw_tiles(BC_Pixmap *tile, int origin_x, int origin_y, int x, int y, int w, int h) @@ -987,15 +967,8 @@ void BC_WindowBase::slide_right(int distance) if(distance < w) { XCopyArea(top_level->display, - pixmap->opaque_pixmap, - pixmap->opaque_pixmap, - top_level->gc, - 0, - 0, - w - distance, - h, - distance, - 0); + pixmap->opaque_pixmap, pixmap->opaque_pixmap, top_level->gc, + 0, 0, w - distance, h, distance, 0); } } @@ -1004,23 +977,11 @@ void BC_WindowBase::slide_up(int distance) if(distance < h) { XCopyArea(top_level->display, - pixmap->opaque_pixmap, - pixmap->opaque_pixmap, - top_level->gc, - 0, - distance, - w, - h - distance, - 0, - 0); + pixmap->opaque_pixmap, pixmap->opaque_pixmap, top_level->gc, + 0, distance, w, h - distance, 0, 0); set_color(bg_color); - XFillRectangle(top_level->display, - pixmap->opaque_pixmap, - top_level->gc, - 0, - h - distance, - w, - distance); + XFillRectangle(top_level->display, pixmap->opaque_pixmap, top_level->gc, + 0, h - distance, w, distance); } } @@ -1029,35 +990,19 @@ void BC_WindowBase::slide_down(int distance) if(distance < h) { XCopyArea(top_level->display, - pixmap->opaque_pixmap, - pixmap->opaque_pixmap, - top_level->gc, - 0, - 0, - w, - h - distance, - 0, - distance); + pixmap->opaque_pixmap, pixmap->opaque_pixmap, top_level->gc, + 0, 0, w, h - distance, 0, distance); set_color(bg_color); XFillRectangle(top_level->display, - pixmap->opaque_pixmap, - top_level->gc, - 0, - 0, - w, - distance); + pixmap->opaque_pixmap, top_level->gc, + 0, 0, w, distance); } } // 3 segments in separate pixmaps. Obsolete. -void BC_WindowBase::draw_3segment(int x, - int y, - int w, - int h, - BC_Pixmap *left_image, - BC_Pixmap *mid_image, - BC_Pixmap *right_image, - BC_Pixmap *pixmap) +void BC_WindowBase::draw_3segment(int x, int y, int w, int h, + BC_Pixmap *left_image, BC_Pixmap *mid_image, + BC_Pixmap *right_image, BC_Pixmap *pixmap) { if(w <= 0 || h <= 0) return; int left_boundary = left_image->get_w_fixed(); @@ -1089,25 +1034,14 @@ void BC_WindowBase::draw_3segment(int x, if(i + output_w > w) output_w = w - i; image->write_drawable(pixmap ? pixmap->opaque_pixmap : this->pixmap->opaque_pixmap, - x + i, - y, - output_w, - h, - 0, - 0); - + x + i, y, output_w, h, 0, 0); i += output_w; } } // 3 segments in separate vframes. Obsolete. -void BC_WindowBase::draw_3segment(int x, - int y, - int w, - int h, - VFrame *left_image, - VFrame *mid_image, - VFrame *right_image, - BC_Pixmap *pixmap) +void BC_WindowBase::draw_3segment(int x, int y, int w, int h, + VFrame *left_image, VFrame *mid_image, + VFrame *right_image, BC_Pixmap *pixmap) { if(w <= 0 || h <= 0) return; int left_boundary = left_image->get_w_fixed(); @@ -1141,16 +1075,8 @@ void BC_WindowBase::draw_3segment(int x, if(i + output_w > w) output_w = w - i; if(image) - draw_vframe(image, - x + i, - y, - output_w, - h, - 0, - 0, - 0, - 0, - pixmap); + draw_vframe(image, x + i, y, output_w, h, + 0, 0, 0, 0, pixmap); if(output_w == 0) break; i += output_w; @@ -1171,19 +1097,10 @@ void BC_WindowBase::draw_3segment(int x, // |-------------------|----------------------|------------------| -void BC_WindowBase::draw_3segmenth(int x, - int y, - int w, - VFrame *image, - BC_Pixmap *pixmap) +void BC_WindowBase::draw_3segmenth(int x, int y, int w, + VFrame *image, BC_Pixmap *pixmap) { - draw_3segmenth(x, - y, - w, - x, - w, - image, - pixmap); + draw_3segmenth(x, y, w, x, w, image, pixmap); } void BC_WindowBase::draw_3segmenth(int x, int y, int w, @@ -1353,56 +1270,23 @@ void BC_WindowBase::draw_3segmenth(int x, int y, int w, int total_x, int total_w //printf("BC_WindowBase::draw_3segment 2 left_out_x=%d left_out_w=%d center_out_x=%d center_out_w=%d right_out_x=%d right_out_w=%d\n", // left_out_x, left_out_w, center_out_x, center_out_w, right_out_x, right_out_w); if(left_out_w > 0) - { - draw_pixmap(src, - left_out_x, - y, - left_out_w, - src->get_h(), - left_in_x, - 0, - dst); - } + draw_pixmap(src, left_out_x, y, left_out_w, src->get_h(), left_in_x, 0, dst); if(right_out_w > 0) - { - draw_pixmap(src, - right_out_x, - y, - right_out_w, - src->get_h(), - right_in_x, - 0, - dst); - } + draw_pixmap(src, right_out_x, y, right_out_w, src->get_h(), right_in_x, 0, dst); - for(int pixel = center_out_x; - pixel < center_out_x + center_out_w; - pixel += half_src) - { + for( int pixel = center_out_x; pixel < center_out_x + center_out_w; pixel += half_src) { int fragment_w = half_src; if(fragment_w + pixel > center_out_x + center_out_w) fragment_w = (center_out_x + center_out_w) - pixel; - //printf("BC_WindowBase::draw_3segment 2 pixel=%d fragment_w=%d\n", pixel, fragment_w); - draw_pixmap(src, - pixel, - y, - fragment_w, - src->get_h(), - quarter_src, - 0, - dst); + draw_pixmap(src, pixel, y, fragment_w, src->get_h(), quarter_src, 0, dst); } } -void BC_WindowBase::draw_3segmenth(int x, - int y, - int w, - BC_Pixmap *src, - BC_Pixmap *dst) +void BC_WindowBase::draw_3segmenth(int x, int y, int w, BC_Pixmap *src, BC_Pixmap *dst) { if(w <= 0) return; int third_image = src->get_w() / 3; @@ -1439,61 +1323,23 @@ void BC_WindowBase::draw_3segmenth(int x, //printf("BC_WindowBase::draw_3segment 2 left_out_x=%d left_out_w=%d center_out_x=%d center_out_w=%d right_out_x=%d right_out_w=%d\n", // left_out_x, left_out_w, center_out_x, center_out_w, right_out_x, right_out_w); if(left_out_w > 0) - { - draw_pixmap(src, - left_out_x, - y, - left_out_w, - src->get_h(), - left_in_x, - 0, - dst); - } + draw_pixmap(src, left_out_x, y, left_out_w, src->get_h(), left_in_x, 0, dst); if(right_out_w > 0) - { - draw_pixmap(src, - right_out_x, - y, - right_out_w, - src->get_h(), - right_in_x, - 0, - dst); - } + draw_pixmap(src, right_out_x, y, right_out_w, src->get_h(), right_in_x, 0, dst); - for(int pixel = left_out_x + left_out_w; - pixel < right_out_x; - pixel += third_image) - { + for(int pixel = left_out_x + left_out_w; pixel < right_out_x; pixel += third_image) { int fragment_w = third_image; if(fragment_w + pixel > right_out_x) fragment_w = right_out_x - pixel; //printf("BC_WindowBase::draw_3segment 2 pixel=%d fragment_w=%d\n", pixel, fragment_w); - draw_pixmap(src, - pixel, - y, - fragment_w, - src->get_h(), - third_image, - 0, - dst); + draw_pixmap(src, pixel, y, fragment_w, src->get_h(), third_image, 0, dst); } } - - - - - - -void BC_WindowBase::draw_3segmentv(int x, - int y, - int h, - VFrame *src, - BC_Pixmap *dst) +void BC_WindowBase::draw_3segmentv(int x, int y, int h, VFrame *src, BC_Pixmap *dst) { if(h <= 0) return; int third_image = src->get_h() / 3; @@ -1541,32 +1387,16 @@ void BC_WindowBase::draw_3segmentv(int x, if(left_out_h > 0) { - draw_bitmap(temp_bitmap, - 0, - x, - left_out_y, - src->get_w(), - left_out_h, - 0, - left_in_y, - -1, - -1, - dst); + draw_bitmap(temp_bitmap, 0, x, left_out_y, + src->get_w(), left_out_h, 0, left_in_y, + -1, -1, dst); } if(right_out_h > 0) { - draw_bitmap(temp_bitmap, - 0, - x, - right_out_y, - src->get_w(), - right_out_h, - 0, - right_in_y, - -1, - -1, - dst); + draw_bitmap(temp_bitmap, 0, x, right_out_y, + src->get_w(), right_out_h, 0, right_in_y, + -1, -1, dst); } for(int pixel = left_out_y + left_out_h; @@ -1578,17 +1408,9 @@ void BC_WindowBase::draw_3segmentv(int x, fragment_h = right_out_y - pixel; //printf("BC_WindowBase::draw_3segment 2 pixel=%d fragment_w=%d\n", pixel, fragment_w); - draw_bitmap(temp_bitmap, - 0, - x, - pixel, - src->get_w(), - fragment_h, - 0, - third_image, - -1, - -1, - dst); + draw_bitmap(temp_bitmap, 0, x, pixel, + src->get_w(), fragment_h, 0, third_image, + -1, -1, dst); } } @@ -1629,56 +1451,27 @@ void BC_WindowBase::draw_3segmentv(int x, } if(left_out_h > 0) - { - draw_pixmap(src, - x, - left_out_y, - src->get_w(), - left_out_h, - 0, - left_in_y, - dst); - } + draw_pixmap(src, x, left_out_y, src->get_w(), left_out_h, + 0, left_in_y, dst); if(right_out_h > 0) - { - draw_pixmap(src, - x, - right_out_y, - src->get_w(), - right_out_h, - 0, - right_in_y, - dst); - } + draw_pixmap(src, x, right_out_y, src->get_w(), right_out_h, + 0, right_in_y, dst); - for(int pixel = left_out_y + left_out_h; - pixel < right_out_y; - pixel += third_image) - { + for(int pixel = left_out_y + left_out_h; pixel < right_out_y; pixel += third_image) { int fragment_h = third_image; if(fragment_h + pixel > right_out_y) fragment_h = right_out_y - pixel; //printf("BC_WindowBase::draw_3segment 2 pixel=%d fragment_w=%d\n", pixel, fragment_w); - draw_pixmap(src, - x, - pixel, - src->get_w(), - fragment_h, - 0, - third_image, - dst); + draw_pixmap(src, x, pixel, src->get_w(), fragment_h, + 0, third_image, dst); } } -void BC_WindowBase::draw_9segment(int x, - int y, - int w, - int h, - BC_Pixmap *src, - BC_Pixmap *dst) +void BC_WindowBase::draw_9segment(int x, int y, int w, int h, + BC_Pixmap *src, BC_Pixmap *dst) { if(w <= 0 || h <= 0) return; @@ -1707,48 +1500,21 @@ void BC_WindowBase::draw_9segment(int x, //int in_y4 = src->get_h(); // Segment 1 - draw_pixmap(src, - x + out_x1, - y + out_y1, - out_x2 - out_x1, - out_y2 - out_y1, - in_x1, - in_y1, - dst); - + draw_pixmap(src, x + out_x1, y + out_y1, out_x2 - out_x1, out_y2 - out_y1, + in_x1, in_y1, dst); // Segment 2 * n - for(int i = out_x2; i < out_x3; i += in_x3 - in_x2) - { - if(out_x3 - i > 0) - { + for(int i = out_x2; i < out_x3; i += in_x3 - in_x2) { + if(out_x3 - i > 0) { int w = MIN(in_x3 - in_x2, out_x3 - i); - draw_pixmap(src, - x + i, - y + out_y1, - w, - out_y2 - out_y1, - in_x2, - in_y1, - dst); + draw_pixmap(src, x + i, y + out_y1, w, out_y2 - out_y1, + in_x2, in_y1, dst); } } - - - - // Segment 3 - draw_pixmap(src, - x + out_x3, - y + out_y1, - out_x4 - out_x3, - out_y2 - out_y1, - in_x3, - in_y1, - dst); - - + draw_pixmap(src, x + out_x3, y + out_y1, out_x4 - out_x3, out_y2 - out_y1, + in_x3, in_y1, dst); // Segment 4 * n for(int i = out_y2; i < out_y3; i += in_y3 - in_y2) @@ -1756,18 +1522,11 @@ void BC_WindowBase::draw_9segment(int x, if(out_y3 - i > 0) { int h = MIN(in_y3 - in_y2, out_y3 - i); - draw_pixmap(src, - x + out_x1, - y + i, - out_x2 - out_x1, - h, - in_x1, - in_y2, - dst); + draw_pixmap(src, x + out_x1, y + i, out_x2 - out_x1, h, + in_x1, in_y2, dst); } } - // Segment 5 * n * n for(int i = out_y2; i < out_y3; i += in_y3 - in_y2 /* in_y_third */) { @@ -1780,14 +1539,8 @@ void BC_WindowBase::draw_9segment(int x, { int w = MIN(in_x3 - in_x2 /* in_x_third */, out_x3 - j); if(out_x3 - j > 0) - draw_pixmap(src, - x + j, - y + i, - w, - h, - in_x2, - in_y2, - dst); + draw_pixmap(src, x + j, y + i, w, h, + in_x2, in_y2, dst); } } } @@ -1798,30 +1551,14 @@ void BC_WindowBase::draw_9segment(int x, if(out_y3 - i > 0) { int h = MIN(in_y3 - in_y2, out_y3 - i); - draw_pixmap(src, - x + out_x3, - y + i, - out_x4 - out_x3, - h, - in_x3, - in_y2, - dst); + draw_pixmap(src, x + out_x3, y + i, out_x4 - out_x3, h, + in_x3, in_y2, dst); } } - - - // Segment 7 - draw_pixmap(src, - x + out_x1, - y + out_y3, - out_x2 - out_x1, - out_y4 - out_y3, - in_x1, - in_y3, - dst); - + draw_pixmap(src, x + out_x1, y + out_y3, out_x2 - out_x1, out_y4 - out_y3, + in_x1, in_y3, dst); // Segment 8 * n for(int i = out_x2; i < out_x3; i += in_x3 - in_x2) @@ -1829,28 +1566,14 @@ void BC_WindowBase::draw_9segment(int x, if(out_x3 - i > 0) { int w = MIN(in_x3 - in_y2, out_x3 - i); - draw_pixmap(src, - x + i, - y + out_y3, - w, - out_y4 - out_y3, - in_x2, - in_y3, - dst); + draw_pixmap(src, x + i, y + out_y3, w, out_y4 - out_y3, + in_x2, in_y3, dst); } } - - // Segment 9 - draw_pixmap(src, - x + out_x3, - y + out_y3, - out_x4 - out_x3, - out_y4 - out_y3, - in_x3, - in_y3, - dst); + draw_pixmap(src, x + out_x3, y + out_y3, out_x4 - out_x3, out_y4 - out_y3, + in_x3, in_y3, dst); } diff --git a/cinelerra-5.1/guicast/errorbox.C b/cinelerra-5.1/guicast/errorbox.C index 91504d23..420c3223 100644 --- a/cinelerra-5.1/guicast/errorbox.C +++ b/cinelerra-5.1/guicast/errorbox.C @@ -33,17 +33,13 @@ ErrorBox::~ErrorBox() void ErrorBox::create_objects(const char *text) { lock_window("ErrorBox::create_objects"); - int x = 10, y = 10; + int x = xS(10), y = yS(10); - add_subwindow(new BC_Title(get_w() / 2, - y, - text, - MEDIUMFONT, - get_resources()->default_text_color, - 1)); - x = get_w() / 2 - 30; - y = get_h() - 50; - add_tool(new BC_OKButton(x, y)); + add_subwindow(new BC_Title(get_w() / 2, y, text, + MEDIUMFONT, get_resources()->default_text_color, 1)); + x = get_w()/2 - xS(30); + y = get_h() - yS(50); + add_subwindow(new BC_OKButton(x, y)); show_window(1); unlock_window(); } diff --git a/cinelerra-5.1/guicast/rotateframe.C b/cinelerra-5.1/guicast/rotateframe.C index 63bca1b0..1246264b 100644 --- a/cinelerra-5.1/guicast/rotateframe.C +++ b/cinelerra-5.1/guicast/rotateframe.C @@ -81,8 +81,8 @@ void RotateFrame::rotate(VFrame *output, if(angle != 0) { - if(angle == 90 || angle == 180 || angle == 270) - rotate_rightangle(input, + if(angle == 90 || angle == 180 || angle == 270) + rotate_rightangle(input, output, (int)angle); else @@ -101,22 +101,15 @@ void RotateFrame::rotate(VFrame *output, this->last_angle = angle; } -int RotateFrame::get_rightdimensions(VFrame *frame, - int &diameter, - int &in_x1, - int &in_y1, - int &in_x2, - int &in_y2, - int &out_x1, - int &out_y1, - int &out_x2, - int &out_y2) +int RotateFrame::get_rightdimensions(VFrame *frame, int &diameter, + int &in_x1, int &in_y1, int &in_x2, int &in_y2, + int &out_x1, int &out_y1, int &out_x2, int &out_y2) { - diameter = frame->get_w() < frame->get_h() ? frame->get_w() : frame->get_h(); - out_x1 = in_x1 = frame->get_w() / 2 - diameter / 2; - out_x2 = in_x2 = in_x1 + diameter - 1; - out_y1 = in_y1 = frame->get_h() / 2 - diameter / 2; - out_y2 = in_y2 = in_y1 + diameter - 1; + diameter = frame->get_w() < frame->get_h() ? frame->get_w() : frame->get_h(); + out_x1 = in_x1 = frame->get_w() / 2 - diameter / 2; + out_x2 = in_x2 = in_x1 + diameter - 1; + out_y1 = in_y1 = frame->get_h() / 2 - diameter / 2; + out_y2 = in_y2 = in_y1 + diameter - 1; return 0; } @@ -129,107 +122,75 @@ int RotateFrame::get_rightdimensions(VFrame *frame, int height = output->get_h(); \ int width = output->get_w(); \ \ - switch(angle) \ - { \ + switch(angle) { \ case 90: \ - get_rightdimensions(input, \ - diameter, \ - in_x1, \ - in_y1, \ - in_x2, \ - in_y2, \ - out_x1, \ - out_y1, \ - out_x2, \ - out_y2); \ - while(in_x2 > in_x1) \ - { \ - diameter = in_x2 - in_x1; \ - for(int i = 0; i < diameter; i++) \ - { \ - type temp_pixel[components]; \ + get_rightdimensions(input, diameter, \ + in_x1, in_y1, in_x2, in_y2, \ + out_x1, out_y1, out_x2, out_y2); \ + while(in_x2 > in_x1) { \ + diameter = in_x2 - in_x1; \ + for(int i = 0; i < diameter; i++) { \ + type temp_pixel[components]; \ for(int j = 0; j < components; j++) \ { \ temp_pixel[j] = input_rows[in_y1 + i][in_x2 * components + j]; \ - \ - output_rows[in_y1 + i][in_x2 * components + j] = input_rows[in_y1][(in_x1 + i) * components + j]; \ - output_rows[in_y1][(in_x1 + i) * components + j] = input_rows[in_y2 - i][in_x1 * components + j]; \ - output_rows[in_y2 - i][in_x1 * components + j] = input_rows[in_y2][(in_x2 - i) * components + j]; \ - output_rows[in_y2][(in_x2 - i) * components + j] = temp_pixel[j]; \ + output_rows[in_y1 + i][in_x2 * components + j] = input_rows[in_y1][(in_x1 + i) * components + j]; \ + output_rows[in_y1][(in_x1 + i) * components + j] = input_rows[in_y2 - i][in_x1 * components + j]; \ + output_rows[in_y2 - i][in_x1 * components + j] = input_rows[in_y2][(in_x2 - i) * components + j]; \ + output_rows[in_y2][(in_x2 - i) * components + j] = temp_pixel[j]; \ } \ - } \ + } \ \ - in_x2--; \ - in_x1++; \ - in_y2--; \ - in_y1++; \ - } \ + in_x2--; in_x1++; in_y2--; in_y1++; \ + } \ break; \ \ - case 180: \ - for(int i = 0, j = height - 1; i < j; i++, j--) \ - { \ - for(int k = 0, l = width - 1; k < width; k++, l--) \ - { \ - type temp_pixel[components]; \ - for(int m = 0; m < components; m++) \ - { \ - temp_pixel[m] = input_rows[j][k * components + m]; \ - output_rows[j][k * components + m] = input_rows[i][l * components + m]; \ - output_rows[i][l * components + m] = temp_pixel[m]; \ + case 180: \ + for(int i = 0, j = height - 1; i < j; i++, j--) { \ + for(int k = 0, l = width - 1; k < width; k++, l--) { \ + type temp_pixel[components]; \ + for(int m = 0; m < components; m++) { \ + temp_pixel[m] = input_rows[j][k * components + m]; \ + output_rows[j][k * components + m] = input_rows[i][l * components + m]; \ + output_rows[i][l * components + m] = temp_pixel[m]; \ } \ - } \ - } \ + } \ + } \ break; \ \ case 270: \ - get_rightdimensions(input, \ - diameter, \ - in_x1, \ - in_y1, \ - in_x2, \ - in_y2, \ - out_x1, \ - out_y1, \ - out_x2, \ - out_y2); \ + get_rightdimensions(input, diameter, \ + in_x1, in_y1, in_x2, in_y2, \ + out_x1, out_y1, out_x2, out_y2); \ \ - while(in_x2 > in_x1) \ - { \ - diameter = in_x2 - in_x1; \ - for(int i = 0; i < diameter; i++) \ - { \ - type temp_pixel[components]; \ - for(int j = 0; j < components; j++) \ - { \ - temp_pixel[j] = input_rows[in_y1 + i][in_x1 * components + j]; \ - output_rows[in_y1 + i][in_x1 * components + j] = input_rows[in_y1][(in_x2 - i) * components + j]; \ - output_rows[in_y1][(in_x2 - i) * components + j] = input_rows[in_y2 - i][in_x2 * components + j]; \ - output_rows[in_y2 - i][in_x2 * components + j] = input_rows[in_y2][(in_x1 + i) * components + j]; \ - output_rows[in_y2][(in_x1 + i) * components + j] = temp_pixel[j]; \ + while(in_x2 > in_x1) { \ + diameter = in_x2 - in_x1; \ + for(int i = 0; i < diameter; i++) { \ + type temp_pixel[components]; \ + for(int j = 0; j < components; j++) { \ + temp_pixel[j] = input_rows[in_y1 + i][in_x1 * components + j]; \ + output_rows[in_y1 + i][in_x1 * components + j] = input_rows[in_y1][(in_x2 - i) * components + j]; \ + output_rows[in_y1][(in_x2 - i) * components + j] = input_rows[in_y2 - i][in_x2 * components + j]; \ + output_rows[in_y2 - i][in_x2 * components + j] = input_rows[in_y2][(in_x1 + i) * components + j]; \ + output_rows[in_y2][(in_x1 + i) * components + j] = temp_pixel[j]; \ } \ - } \ + } \ \ - in_x2--; \ - in_x1++; \ - in_y2--; \ - in_y1++; \ - } \ + in_x2--; in_x1++; in_y2--; in_y1++; \ + } \ break; \ } \ } -int RotateFrame::rotate_rightangle(VFrame *input, - VFrame *output, - int angle) +int RotateFrame::rotate_rightangle(VFrame *input, VFrame *output, int angle) { int in_x1 = 0; - int in_y1 = 0; - int in_x2 = input->get_w(); - int in_y2 = input->get_h(); + int in_y1 = 0; + int in_x2 = input->get_w(); + int in_y2 = input->get_h(); int out_x1, out_y1, out_x2, out_y2; - int diameter; + int diameter; output->clear_frame(); switch(output->get_color_model()) diff --git a/cinelerra-5.1/guicast/test.C b/cinelerra-5.1/guicast/test.C index dc71db3f..f29033e1 100644 --- a/cinelerra-5.1/guicast/test.C +++ b/cinelerra-5.1/guicast/test.C @@ -119,16 +119,8 @@ void thread_fork() class TestWindow : public BC_Window { public: - TestWindow() : BC_Window("test", - 0, - 0, - 320, - 240, - -1, - -1, - 0, - 0, - 1) + TestWindow() : BC_Window("test", 0, 0, 320, 240, + -1, -1, 0, 0, 1) { current_cursor = 0; test_keypress = 1; @@ -169,15 +161,7 @@ int main(int argc, char *argv[]) int angles[] = { 180, 0 }; float values[] = { 1, 0 }; - window.add_tool(new BC_Pan(10, - 120, - 100, - 1, - 2, - angles, - -1, - -1, - values)); + window.add_tool(new BC_Pan(10, 120, 100, 1, 2, angles, -1, -1, values)); window.add_tool(new BC_TextBox(10, 10, 200, 5, _("Mary Egbert\nhad a little lamb."))); BC_Title *title; window.add_tool(title = new BC_Title(10, 210, _("Hello world"))); diff --git a/cinelerra-5.1/guicast/test2.C b/cinelerra-5.1/guicast/test2.C index fd22fc60..555b4c90 100644 --- a/cinelerra-5.1/guicast/test2.C +++ b/cinelerra-5.1/guicast/test2.C @@ -26,18 +26,9 @@ class TestWindow : public BC_Window { public: - TestWindow() : BC_Window("test", - 0, - 0, - 640, - 480) - { - } + TestWindow() : BC_Window("test", 0, 0, 640, 480) {} }; - - - typedef struct { struct timeval start_time; diff --git a/cinelerra-5.1/guicast/test3.C b/cinelerra-5.1/guicast/test3.C index 5433f55a..d8f30152 100644 --- a/cinelerra-5.1/guicast/test3.C +++ b/cinelerra-5.1/guicast/test3.C @@ -28,13 +28,7 @@ class TestWindow : public BC_Window { public: - TestWindow() : BC_Window("Test", - 0, - 0, - 320, - 240) - { - }; + TestWindow() : BC_Window("Test", 0, 0, 320, 240) {}; void create_objects() { diff --git a/cinelerra-5.1/guicast/vframe.C b/cinelerra-5.1/guicast/vframe.C index 4c1aa390..a4a76cc4 100644 --- a/cinelerra-5.1/guicast/vframe.C +++ b/cinelerra-5.1/guicast/vframe.C @@ -73,11 +73,6 @@ VFrameScene::~VFrameScene() } - - - - - //static BCCounter counter; VFramePng::VFramePng(unsigned char *png_data, double s) diff --git a/cinelerra-5.1/guicast/vframe3d.C b/cinelerra-5.1/guicast/vframe3d.C index ed47a40e..90d75d7b 100644 --- a/cinelerra-5.1/guicast/vframe3d.C +++ b/cinelerra-5.1/guicast/vframe3d.C @@ -76,15 +76,6 @@ int VFrame::get_texture_components() } - - - - - - - - - void VFrame::to_texture() { #ifdef HAVE_GL diff --git a/cinelerra-5.1/opencv_build b/cinelerra-5.1/opencv_build index caacceeb..91950aaf 100644 --- a/cinelerra-5.1/opencv_build +++ b/cinelerra-5.1/opencv_build @@ -83,6 +83,7 @@ $(opencv)/build: $(opencv).src -DCMAKE_INSTALL_PREFIX=/usr/local \ -DOPENCV_EXTRA_MODULES_PATH="$(opencv)_contrib/modules/" +LFLAGS += -llapack -lcblas LFLAGS += -Wl,--start-group LFLAGS += $(shell find $(opencv_prefix)/lib* -name "libopencv_*.a" 2> /dev/null) #opencv4 breaks SIFT/SURF findobj @@ -103,6 +104,7 @@ $(opencv)/build: $(opencv).src -DCMAKE_INSTALL_PREFIX=/usr/local \ -DOPENCV_EXTRA_MODULES_PATH="$(opencv)_contrib/modules/" +LFLAGS += -llapack -lcblas SYSLIB := $(lastword $(wildcard /usr/lib /usrlib32 /usr/lib64)) CVLIBS := $(dir (shell find $(opencv_prefix) -name libopencv_core.a)) LFLAGS += -L$(CVLIBS) $(patsubst $(CVLIBS)/lib%.so,-l%,$(wildcard $(CVLIBS)/libopencv_*.so)) diff --git a/cinelerra-5.1/plugins/1080to480/1080to480.C b/cinelerra-5.1/plugins/1080to480/1080to480.C index 6b522295..590d732f 100644 --- a/cinelerra-5.1/plugins/1080to480/1080to480.C +++ b/cinelerra-5.1/plugins/1080to480/1080to480.C @@ -72,7 +72,7 @@ void _1080to480Config::interpolate(_1080to480Config &prev, _1080to480Window::_1080to480Window(_1080to480Main *client) - : PluginClientWindow(client, 200, 100, 0, 0, 1) + : PluginClientWindow(client, xS(200), yS(100), 0, 0, 1) { this->client = client; } @@ -84,10 +84,10 @@ _1080to480Window::~_1080to480Window() void _1080to480Window::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); add_tool(odd_first = new _1080to480Option(client, this, 1, x, y, _("Odd field first"))); - y += 25; + y += yS(25); add_tool(even_first = new _1080to480Option(client, this, 0, x, y, _("Even field first"))); show_window(); diff --git a/cinelerra-5.1/plugins/1080to540/1080to540.C b/cinelerra-5.1/plugins/1080to540/1080to540.C index ecf9a0f8..76cbeb0a 100644 --- a/cinelerra-5.1/plugins/1080to540/1080to540.C +++ b/cinelerra-5.1/plugins/1080to540/1080to540.C @@ -73,10 +73,10 @@ void _1080to540Config::interpolate(_1080to540Config &prev, _1080to540Window::_1080to540Window(_1080to540Main *client) : PluginClientWindow(client, - 200, - 100, - 200, - 100, + xS(200), + yS(100), + xS(200), + yS(100), 0) { this->client = client; @@ -89,10 +89,10 @@ _1080to540Window::~_1080to540Window() void _1080to540Window::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); add_tool(odd_first = new _1080to540Option(client, this, 1, x, y, _("Odd field first"))); - y += 25; + y += yS(25); add_tool(even_first = new _1080to540Option(client, this, 0, x, y, _("Even field first"))); show_window(); diff --git a/cinelerra-5.1/plugins/720to480/720to480.C b/cinelerra-5.1/plugins/720to480/720to480.C index c1af6c27..6d62e873 100644 --- a/cinelerra-5.1/plugins/720to480/720to480.C +++ b/cinelerra-5.1/plugins/720to480/720to480.C @@ -52,16 +52,7 @@ _720to480Config::_720to480Config() _720to480Window::_720to480Window(_720to480Main *client, int x, int y) - : BC_Window(client->gui_string, - x, - y, - 230, - 150, - 230, - 150, - 0, - 0, - 1) + : BC_Window(client->gui_string, x, y, xS(230), yS(150), xS(230), yS(150), 0, 0, 1) { this->client = client; } @@ -73,15 +64,16 @@ _720to480Window::~_720to480Window() void _720to480Window::create_objects() { - int x = 10, y = 10; + lock_window("720to480Window::create_objects"); + int x = xS(10), y = yS(10); add_tool(odd_first = new _720to480Order(client, this, 1, x, y, _("Odd field first"))); - y += 25; + y += yS(25); add_tool(even_first = new _720to480Order(client, this, 0, x, y, _("Even field first"))); -// y += 25; +// y += yS(25); // add_tool(forward = new _720to480Direction(client, this, FORWARD, x, y, _("Downsample"))); -// y += 25; +// y += yS(25); // add_tool(reverse = new _720to480Direction(client, this, REVERSE, x, y, _("Upsample"))); // add_subwindow(new BC_OKButton(this)); @@ -89,6 +81,7 @@ void _720to480Window::create_objects() show_window(); flush(); + unlock_window(); } int _720to480Window::close_event() diff --git a/cinelerra-5.1/plugins/C41/c41.C b/cinelerra-5.1/plugins/C41/c41.C index b16f0145..f0cbd948 100644 --- a/cinelerra-5.1/plugins/C41/c41.C +++ b/cinelerra-5.1/plugins/C41/c41.C @@ -38,7 +38,7 @@ C41Config::C41Config() fix_min_r = fix_min_g = fix_min_b = fix_light = 0.; fix_gamma_g = fix_gamma_b = fix_coef1 = fix_coef2 = 0.; min_col = max_col = min_row = max_row = 0; - window_w = 500; window_h = 510; + window_w = xS(500); window_h = yS(510); } void C41Config::copy_from(C41Config &src) @@ -123,7 +123,7 @@ int C41Enable::handle_event() // C41TextBox C41TextBox::C41TextBox(C41Effect *plugin, float *value, int x, int y) - : BC_TextBox(x, y, 160, 1, *value) + : BC_TextBox(x, y, xS(160), 1, *value) { this->plugin = plugin; this->boxValue = value; @@ -187,7 +187,7 @@ int C41BoxButton::handle_event() C41Slider::C41Slider(C41Effect *plugin, int *output, int x, int y, int is_row) - : BC_ISlider(x, y, 0, 200, 200, 0, is_row ? + : BC_ISlider(x, y, 0, xS(200), yS(200), 0, is_row ? plugin->get_edl()->session->output_h : plugin->get_edl()->session->output_w , *output) { @@ -210,7 +210,7 @@ int C41Slider::update(int v) EDLSession *session = plugin->get_edl()->session; int max = is_row ? session->output_h : session->output_w; bclamp(v, 0, max); - if( this->max != max ) return BC_ISlider::update(200, v, 0, this->max = max); + if( this->max != max ) return BC_ISlider::update(xS(200), v, 0, this->max = max); if( v != get_value() ) return BC_ISlider::update(v); return 1; } @@ -226,147 +226,149 @@ LOAD_CONFIGURATION_MACRO(C41Effect, C41Config) C41Window::C41Window(C41Effect *plugin) : PluginClientWindow(plugin, plugin->config.window_w, plugin->config.window_h, - 500, 510, 1) + xS(500), yS(510), 1) { } void C41Window::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10), xs20 = xS(20), xs40 = xS(40), xs80 = xS(80); + int ys10 = yS(10), ys20 = yS(20), ys25 = yS(25), ys30 = yS(30), ys40 = yS(40), ys60 = yS(60); + int x = xs10, y = ys10; C41Effect *plugin = (C41Effect *)client; add_subwindow(active = new C41Enable(plugin, &plugin->config.active, x, y, _("Activate processing"))); - y += 40; + y += ys40; add_subwindow(compute_magic = new C41Enable(plugin, &plugin->config.compute_magic, x, y, _("Compute negfix values"))); - y += 20; + y += ys20; - add_subwindow(new BC_Title(x + 20, y, _("(uncheck for faster rendering)"))); - y += 40; + add_subwindow(new BC_Title(x + xs20, y, _("(uncheck for faster rendering)"))); + y += ys40; add_subwindow(new BC_Title(x, y, _("Computed negfix values:"))); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Min/Max R:"))); - add_subwindow(min_r = new BC_Title(x + 80, y, "0.0000 / 0.0000")); - y += 30; + add_subwindow(min_r = new BC_Title(x + xs80, y, "0.0000 / 0.0000")); + y += ys30; add_subwindow(new BC_Title(x, y, _("Min/Max G:"))); - add_subwindow(min_g = new BC_Title(x + 80, y, "0.0000 / 0.0000")); - y += 30; + add_subwindow(min_g = new BC_Title(x + xs80, y, "0.0000 / 0.0000")); + y += ys30; add_subwindow(new BC_Title(x, y, _("Min/Max B:"))); - add_subwindow(min_b = new BC_Title(x + 80, y, "0.0000 / 0.0000")); - y += 30; + add_subwindow(min_b = new BC_Title(x + xs80, y, "0.0000 / 0.0000")); + y += ys30; add_subwindow(new BC_Title(x, y, _("Light:"))); - add_subwindow(light = new BC_Title(x + 80, y, "0.0000")); - y += 30; + add_subwindow(light = new BC_Title(x + xs80, y, "0.0000")); + y += ys30; add_subwindow(new BC_Title(x, y, _("Gamma G:"))); - add_subwindow(gamma_g = new BC_Title(x + 80, y, "0.0000")); - y += 30; + add_subwindow(gamma_g = new BC_Title(x + xs80, y, "0.0000")); + y += ys30; add_subwindow(new BC_Title(x, y, _("Gamma B:"))); - add_subwindow(gamma_b = new BC_Title(x + 80, y, "0.0000")); - y += 30; + add_subwindow(gamma_b = new BC_Title(x + xs80, y, "0.0000")); + y += ys30; add_subwindow(new BC_Title(x, y, _("Contrast:"))); - add_subwindow(coef1 = new BC_Title(x + 80, y, "0.0000")); - y += 30; + add_subwindow(coef1 = new BC_Title(x + xs80, y, "0.0000")); + y += ys30; add_subwindow(new BC_Title(x, y, _("Brightness:"))); - add_subwindow(coef2 = new BC_Title(x + 80, y, "0.0000")); - y += 30; + add_subwindow(coef2 = new BC_Title(x + xs80, y, "0.0000")); + y += ys30; add_subwindow(lock = new C41Button(plugin, this, x, y)); - y += 30; + y += ys30; #define BOX_COL 120 add_subwindow(new BC_Title(x, y, _("Box col:"))); - add_subwindow(box_col_min = new BC_Title(x + 80, y, "0")); + add_subwindow(box_col_min = new BC_Title(x + xs80, y, "0")); add_subwindow(box_col_max = new BC_Title(x + BOX_COL, y, "0")); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Box row:"))); - add_subwindow(box_row_min = new BC_Title(x + 80, y, "0")); + add_subwindow(box_row_min = new BC_Title(x + xs80, y, "0")); add_subwindow(box_row_max = new BC_Title(x + BOX_COL, y, "0")); - y += 30; + y += ys30; add_subwindow(boxlock = new C41BoxButton(plugin, this, x, y)); - y = 10; - x = 250; + y = ys10; + x = xS(250); add_subwindow(show_box = new C41Enable(plugin, &plugin->config.show_box, x, y, _("Show active area"))); - y += 40; + y += ys40; add_subwindow(postproc = new C41Enable(plugin, &plugin->config.postproc, x, y, _("Postprocess"))); - y += 60; + y += ys60; add_subwindow(new BC_Title(x, y, _("negfix values to apply:"))); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Min R:"))); add_subwindow(fix_min_r = new C41TextBox(plugin, - &plugin->config.fix_min_r, x + 80, y)); - y += 30; + &plugin->config.fix_min_r, x + xs80, y)); + y += ys30; add_subwindow(new BC_Title(x, y, _("Min G:"))); add_subwindow(fix_min_g = new C41TextBox(plugin, - &plugin->config.fix_min_g, x + 80, y)); - y += 30; + &plugin->config.fix_min_g, x + xs80, y)); + y += ys30; add_subwindow(new BC_Title(x, y, _("Min B:"))); add_subwindow(fix_min_b = new C41TextBox(plugin, - &plugin->config.fix_min_b, x + 80, y)); - y += 30; + &plugin->config.fix_min_b, x + xs80, y)); + y += ys30; add_subwindow(new BC_Title(x, y, _("Light:"))); add_subwindow(fix_light = new C41TextBox(plugin, - &plugin->config.fix_light, x + 80, y)); - y += 30; + &plugin->config.fix_light, x + xs80, y)); + y += ys30; add_subwindow(new BC_Title(x, y, _("Gamma G:"))); add_subwindow(fix_gamma_g = new C41TextBox(plugin, - &plugin->config.fix_gamma_g, x + 80, y)); - y += 30; + &plugin->config.fix_gamma_g, x + xs80, y)); + y += ys30; add_subwindow(new BC_Title(x, y, _("Gamma B:"))); add_subwindow(fix_gamma_b = new C41TextBox(plugin, - &plugin->config.fix_gamma_b, x + 80, y)); - y += 30; + &plugin->config.fix_gamma_b, x + xs80, y)); + y += ys30; add_subwindow(new BC_Title(x, y, _("Contrast:"))); add_subwindow(fix_coef1 = new C41TextBox(plugin, - &plugin->config.fix_coef1, x + 80, y)); - y += 30; + &plugin->config.fix_coef1, x + xs80, y)); + y += ys30; add_subwindow(new BC_Title(x, y, _("Brightness:"))); add_subwindow(fix_coef2 = new C41TextBox(plugin, - &plugin->config.fix_coef2, x + 80, y)); - y += 30; + &plugin->config.fix_coef2, x + xs80, y)); + y += ys30; - x += 40; - add_subwindow(new BC_Title(x - 40, y, _("Col:"))); + x += xs40; + add_subwindow(new BC_Title(x - xs40, y, _("Col:"))); add_subwindow(min_col = new C41Slider(plugin, &plugin->config.min_col, x, y, 0)); - y += 25; + y += ys25; add_subwindow(max_col = new C41Slider(plugin, &plugin->config.max_col, x, y, 0)); - y += 25; + y += ys25; - add_subwindow(new BC_Title(x - 40, y, _("Row:"))); + add_subwindow(new BC_Title(x - xs40, y, _("Row:"))); add_subwindow(min_row = new C41Slider(plugin, &plugin->config.min_row, x, y, 1)); - y += 25; + y += ys25; add_subwindow(max_row = new C41Slider(plugin, &plugin->config.max_row, x, y, 1)); - y += 25; + y += ys25; update_magic(); show_window(1); diff --git a/cinelerra-5.1/plugins/aging/agingwindow.C b/cinelerra-5.1/plugins/aging/agingwindow.C index 9c702d7e..5f4007aa 100644 --- a/cinelerra-5.1/plugins/aging/agingwindow.C +++ b/cinelerra-5.1/plugins/aging/agingwindow.C @@ -24,7 +24,7 @@ #include "language.h" AgingWindow::AgingWindow(AgingMain *plugin) - : PluginClientWindow(plugin, 300, 180, 300, 180, 0) + : PluginClientWindow(plugin, xS(300), yS(180), xS(300), yS(180), 0) { this->plugin = plugin; } @@ -35,30 +35,32 @@ AgingWindow::~AgingWindow() void AgingWindow::create_objects() { - int x = 10, y = 10; + int xs100 = xS(100); + int ys5 = yS(5), ys15 = yS(15), ys180 = yS(180); + int x = xS(10), y = yS(10); BC_Title *title; add_subwindow(title = new BC_Title(x, y, _("Aging:"))); - y += title->get_h() + 15; + y += title->get_h() + ys15; add_subwindow(color = new AgingCheckBox(this, x, y, &plugin->config.colorage, _("Grain"))); - y += color->get_h() + 5; + y += color->get_h() + ys5; add_subwindow(scratches = new AgingCheckBox(this, x, y, &plugin->config.scratch, _("Scratch"))); - add_subwindow(scratch_count = new AgingISlider(this, x+100, y, 180, + add_subwindow(scratch_count = new AgingISlider(this, x+xs100, y, ys180, 0,SCRATCH_MAX, &plugin->config.scratch_lines)); - y += scratches->get_h() + 5; + y += scratches->get_h() + ys5; add_subwindow(pits = new AgingCheckBox(this, x, y, &plugin->config.pits, _("Pits"))); - add_subwindow(pit_count = new AgingISlider(this, x+100, y, 180, + add_subwindow(pit_count = new AgingISlider(this, x+xs100, y, ys180, 0,100, &plugin->config.pits_interval)); - y += pits->get_h() + 5; + y += pits->get_h() + ys5; add_subwindow(dust = new AgingCheckBox(this, x, y, &plugin->config.dust, _("Dust"))); - add_subwindow(dust_count = new AgingISlider(this, x+100, y, 180, + add_subwindow(dust_count = new AgingISlider(this, x+xs100, y, ys180, 0,100, &plugin->config.dust_interval)); show_window(1); diff --git a/cinelerra-5.1/plugins/audioscope/audioscope.C b/cinelerra-5.1/plugins/audioscope/audioscope.C index 83ecc734..d6defad9 100644 --- a/cinelerra-5.1/plugins/audioscope/audioscope.C +++ b/cinelerra-5.1/plugins/audioscope/audioscope.C @@ -132,7 +132,7 @@ AudioScopeWindowSize::AudioScopeWindowSize(AudioScope *plugin, char *text) : BC_PopupMenu(x, y, - 80, + xS(80), text) { this->plugin = plugin; @@ -273,7 +273,7 @@ AudioScopeMode::AudioScopeMode(AudioScope *plugin, int y) : BC_PopupMenu(x, y, - 180, + xS(180), mode_to_text(plugin->config.mode)) { this->plugin = plugin; @@ -341,8 +341,8 @@ AudioScopeWindow::AudioScopeWindow(AudioScope *plugin) : PluginClientWindow(plugin, plugin->w, plugin->h, - 320, - 320, + xS(320), + yS(320), 1) { this->plugin = plugin; @@ -632,8 +632,8 @@ AudioScope::AudioScope(PluginServer *server) { reset(); timer = new Timer; - w = 640; - h = 480; + w = xS(640); + h = yS(480); } AudioScope::~AudioScope() diff --git a/cinelerra-5.1/plugins/bandslide/bandslide.C b/cinelerra-5.1/plugins/bandslide/bandslide.C index e122251a..880d5ff9 100644 --- a/cinelerra-5.1/plugins/bandslide/bandslide.C +++ b/cinelerra-5.1/plugins/bandslide/bandslide.C @@ -120,10 +120,10 @@ int BandSlideOut::handle_event() BandSlideWindow::BandSlideWindow(BandSlideMain *plugin) : PluginClientWindow(plugin, - 320, - 100, - 320, - 100, + xS(320), + yS(100), + xS(320), + yS(100), 0) { this->plugin = plugin; @@ -132,24 +132,26 @@ BandSlideWindow::BandSlideWindow(BandSlideMain *plugin) void BandSlideWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10), xs50 = xS(50), xs100 = xS(100); + int ys10 = yS(10), ys30 = yS(30); + int x = xs10, y = ys10; add_subwindow(new BC_Title(x, y, _("Bands:"))); - x += 50; + x += xs50; count = new BandSlideCount(plugin, this, x, y); count->create_objects(); - y += 30; - x = 10; + y += ys30; + x = xs10; add_subwindow(new BC_Title(x, y, _("Direction:"))); - x += 100; + x += xs100; add_subwindow(in = new BandSlideIn(plugin, this, x, y)); - x += 100; + x += xs100; add_subwindow(out = new BandSlideOut(plugin, this, x, diff --git a/cinelerra-5.1/plugins/bandwipe/bandwipe.C b/cinelerra-5.1/plugins/bandwipe/bandwipe.C index bda24a90..70f7fb47 100644 --- a/cinelerra-5.1/plugins/bandwipe/bandwipe.C +++ b/cinelerra-5.1/plugins/bandwipe/bandwipe.C @@ -53,7 +53,7 @@ BandWipeCount::BandWipeCount(BandWipeMain *plugin, (int64_t)1000, x, y, - 50) + xS(50)) { this->plugin = plugin; this->window = window; @@ -119,10 +119,10 @@ int BandWipeOut::handle_event() BandWipeWindow::BandWipeWindow(BandWipeMain *plugin) : PluginClientWindow(plugin, - 320, - 50, - 320, - 50, + xS(320), + yS(50), + xS(320), + yS(50), 0) { this->plugin = plugin; @@ -131,23 +131,24 @@ BandWipeWindow::BandWipeWindow(BandWipeMain *plugin) void BandWipeWindow::create_objects() { - int x = 10, y = 10; + int xs50 = xS(50); + int x = xS(10), y = yS(10); add_subwindow(new BC_Title(x, y, _("Bands:"))); - x += 50; + x += xs50; count = new BandWipeCount(plugin, this, x, y); count->create_objects(); -// y += 30; +// y += yS(30); // add_subwindow(new BC_Title(x, y, _("Direction:"))); -// x += 100; +// x += yS(100); // add_subwindow(in = new BandWipeIn(plugin, // this, // x, // y)); -// x += 100; -// x = 10; +// x += xS(100); +// x = xS(10); // add_subwindow(out = new BandWipeOut(plugin, // this, // x, diff --git a/cinelerra-5.1/plugins/bluebanana/bluebananawindow.C b/cinelerra-5.1/plugins/bluebanana/bluebananawindow.C index 10692ce4..99146bc7 100644 --- a/cinelerra-5.1/plugins/bluebanana/bluebananawindow.C +++ b/cinelerra-5.1/plugins/bluebanana/bluebananawindow.C @@ -2034,7 +2034,7 @@ public: // --------------------------------------- Main GUI window -------------------------------------- BluebananaWindow::BluebananaWindow(BluebananaMain *plugin) - : PluginClientWindow(plugin,1000,1000,0,1,1) + : PluginClientWindow(plugin,xS(1000),yS(1000),0,1,1) { do_render=0; windowx = get_x(); diff --git a/cinelerra-5.1/plugins/blur/blurwindow.C b/cinelerra-5.1/plugins/blur/blurwindow.C index b8c4b5db..f5a534c9 100644 --- a/cinelerra-5.1/plugins/blur/blurwindow.C +++ b/cinelerra-5.1/plugins/blur/blurwindow.C @@ -31,10 +31,10 @@ BlurWindow::BlurWindow(BlurMain *client) : PluginClientWindow(client, - 200, - 360, - 200, - 360, + xS(200), + yS(360), + xS(200), + yS(360), 0) { this->client = client; @@ -47,30 +47,32 @@ BlurWindow::~BlurWindow() void BlurWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10); + int ys10 = yS(10), ys20 = yS(20), ys30 = yS(30), ys35 = yS(35), ys40 = yS(40); + int x = xs10, y = ys10; BC_Title *title; add_subwindow(new BC_Title(x, y, _("Blur"))); - y += 20; + y += ys20; add_subwindow(horizontal = new BlurHorizontal(client, this, x, y)); - y += 30; + y += ys30; add_subwindow(vertical = new BlurVertical(client, this, x, y)); - y += 35; + y += ys35; add_subwindow(title = new BC_Title(x, y, _("Radius:"))); - y += title->get_h() + 10; + y += title->get_h() + ys10; add_subwindow(radius = new BlurRadius(client, this, x, y)); - add_subwindow(radius_text = new BlurRadiusText(client, this, x + radius->get_w() + 10, y, 100)); - y += radius->get_h() + 10; + add_subwindow(radius_text = new BlurRadiusText(client, this, x + radius->get_w() + xs10, y, 100)); + y += radius->get_h() + ys10; add_subwindow(a_key = new BlurAKey(client, x, y)); - y += 30; + y += ys30; add_subwindow(a = new BlurA(client, x, y)); - y += 30; + y += ys30; add_subwindow(r = new BlurR(client, x, y)); - y += 30; + y += ys30; add_subwindow(g = new BlurG(client, x, y)); - y += 30; + y += ys30; add_subwindow(b = new BlurB(client, x, y)); - y += 40; + y += ys40; add_subwindow(reset = new BlurReset(client, this, x, y)); show_window(); diff --git a/cinelerra-5.1/plugins/blurzoom/blurzoomwindow.C b/cinelerra-5.1/plugins/blurzoom/blurzoomwindow.C index 0cbe1734..e344ccbe 100644 --- a/cinelerra-5.1/plugins/blurzoom/blurzoomwindow.C +++ b/cinelerra-5.1/plugins/blurzoom/blurzoomwindow.C @@ -32,10 +32,10 @@ BlurZoomWindow::BlurZoomWindow(BlurZoomMain *client) : PluginClientWindow(client, - 300, - 170, - 300, - 170, + xS(300), + yS(170), + xS(300), + yS(170), 0) { this->client = client; diff --git a/cinelerra-5.1/plugins/brightness/brightnesswindow.C b/cinelerra-5.1/plugins/brightness/brightnesswindow.C index b127e275..2552e20e 100644 --- a/cinelerra-5.1/plugins/brightness/brightnesswindow.C +++ b/cinelerra-5.1/plugins/brightness/brightnesswindow.C @@ -33,7 +33,7 @@ BrightnessWindow::BrightnessWindow(BrightnessMain *client) - : PluginClientWindow(client, 370, 155, 370, 155, 0) + : PluginClientWindow(client, xS(370), yS(155), xS(370), yS(155), 0) { this->client = client; } @@ -44,20 +44,22 @@ BrightnessWindow::~BrightnessWindow() void BrightnessWindow::create_objects() { - int x = 10, y = 10, x1 = x + 90; - int x2 = 0; int clrBtn_w = 50; + int xs10 = xS(10); + int ys10 = yS(10), ys25 = yS(25), ys30 = yS(30), ys35 = yS(35); + int x = xs10, y = ys10, x1 = x + xS(90); + int x2 = 0; int clrBtn_w = xS(50); add_tool(new BC_Title(x, y, _("Brightness/Contrast"))); - y += 25; + y += ys25; add_tool(new BC_Title(x, y,_("Brightness:"))); add_tool(brightness = new BrightnessSlider(client, &(client->config.brightness), x1, y, 1)); - x2 = x1 + brightness->get_w() + 10; + x2 = x1 + brightness->get_w() + xs10; add_subwindow(brightnessClr = new BrightnessSliderClr(client, this, x2, y, clrBtn_w, 1)); - y += 25; + y += ys25; add_tool(new BC_Title(x, y, _("Contrast:"))); add_tool(contrast = new BrightnessSlider(client, &(client->config.contrast), @@ -66,12 +68,12 @@ void BrightnessWindow::create_objects() 0)); add_subwindow(contrastClr = new BrightnessSliderClr(client, this, x2, y, clrBtn_w, 0)); - y += 30; + y += ys30; add_tool(luma = new BrightnessLuma(client, x, y)); - y += 35; + y += ys35; add_subwindow(reset = new BrightnessReset(client, this, x, y)); show_window(); @@ -103,8 +105,8 @@ BrightnessSlider::BrightnessSlider(BrightnessMain *client, : BC_FSlider(x, y, 0, - 200, - 200, + xS(200), + yS(200), -100, 100, (int)*output) diff --git a/cinelerra-5.1/plugins/burn/burnwindow.C b/cinelerra-5.1/plugins/burn/burnwindow.C index 4442e82d..9d6a5d70 100644 --- a/cinelerra-5.1/plugins/burn/burnwindow.C +++ b/cinelerra-5.1/plugins/burn/burnwindow.C @@ -34,10 +34,10 @@ BurnWindow::BurnWindow(BurnMain *client) : PluginClientWindow(client, - 300, - 170, - 300, - 170, + xS(300), + yS(170), + xS(300), + yS(170), 0) { this->client = client; @@ -49,7 +49,7 @@ BurnWindow::~BurnWindow() void BurnWindow::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); add_subwindow(new BC_Title(x, y, _("BurningTV from EffectTV\n" "Copyright (C) 2001 FUKUCHI Kentarou") diff --git a/cinelerra-5.1/plugins/cdripper/cdripwindow.C b/cinelerra-5.1/plugins/cdripper/cdripwindow.C index 0116664f..28acfeb4 100644 --- a/cinelerra-5.1/plugins/cdripper/cdripwindow.C +++ b/cinelerra-5.1/plugins/cdripper/cdripwindow.C @@ -27,7 +27,7 @@ CDRipWindow::CDRipWindow(CDRipMain *cdripper, int x, int y) : BC_Window(_(PROGRAM_NAME ": CD Ripper"), - x, y, 450, 230, 450, 230, 0, 0, 1) + x, y, xS(450), yS(230), xS(450), yS(230), 0, 0, 1) { this->cdripper = cdripper; } @@ -38,43 +38,45 @@ CDRipWindow::~CDRipWindow() void CDRipWindow::create_objects() { - int y = 10, x = 10; - add_tool(new BC_Title(x, y, _("Select the range to transfer:"))); y += 25; - add_tool(new BC_Title(x, y, _("Track:"))); x += 70; - add_tool(new BC_Title(x, y, _("Min."))); x += 70; - add_tool(new BC_Title(x, y, _("Sec."))); x += 100; - - add_tool(new BC_Title(x, y, _("Track:"))); x += 70; - add_tool(new BC_Title(x, y, _("Min."))); x += 70; - add_tool(new BC_Title(x, y, _("Sec."))); x += 100; - - x = 10; y += 25; + int xs10 = xS(10), xs70 = xS(70), xs100 = xS(100); + int ys10 = yS(10), ys25 = yS(25), ys30 = yS(30), ys35 = yS(35); + int y = ys10, x = xs10; + add_tool(new BC_Title(x, y, _("Select the range to transfer:"))); y += ys25; + add_tool(new BC_Title(x, y, _("Track:"))); x += xs70; + add_tool(new BC_Title(x, y, _("Min."))); x += xs70; + add_tool(new BC_Title(x, y, _("Sec."))); x += xs100; + + add_tool(new BC_Title(x, y, _("Track:"))); x += xs70; + add_tool(new BC_Title(x, y, _("Min."))); x += xs70; + add_tool(new BC_Title(x, y, _("Sec."))); x += xs100; + + x = xs10; y += ys25; add_tool(track1 = new CDRipTextValue(this, &(cdripper->track1), x, y, 50)); - x += 70; + x += xs70; add_tool(min1 = new CDRipTextValue(this, &(cdripper->min1), x, y, 50)); - x += 70; + x += xs70; add_tool(sec1 = new CDRipTextValue(this, &(cdripper->sec1), x, y, 50)); - x += 100; + x += xs100; add_tool(track2 = new CDRipTextValue(this, &(cdripper->track2), x, y, 50)); - x += 70; + x += xs70; add_tool(min2 = new CDRipTextValue(this, &(cdripper->min2), x, y, 50)); - x += 70; + x += xs70; add_tool(sec2 = new CDRipTextValue(this, &(cdripper->sec2), x, y, 50)); - x = 10; y += 30; + x = xs10; y += ys30; add_tool(new BC_Title(x, y, _("From"), LARGEFONT, RED)); - x += 240; + x += xS(240); add_tool(new BC_Title(x, y, _("To"), LARGEFONT, RED)); - x = 10; y += 35; + x = xs10; y += ys35; add_tool(new BC_Title(x, y, _("CD Device:"))); - x += 100; + x += xs100; add_tool(device = new CDRipWindowDevice(this, cdripper->device, x, y, 200)); - x = 10; y += 35; + x = xs10; y += ys35; add_tool(new BC_OKButton(this)); - x += 300; + x += xS(300); add_tool(new BC_CancelButton(this)); show_window(); flush(); diff --git a/cinelerra-5.1/plugins/chromakey/chromakey.C b/cinelerra-5.1/plugins/chromakey/chromakey.C index 525a43a7..6ec5af68 100644 --- a/cinelerra-5.1/plugins/chromakey/chromakey.C +++ b/cinelerra-5.1/plugins/chromakey/chromakey.C @@ -110,10 +110,10 @@ int ChromaKeyConfig::get_color() ChromaKeyWindow::ChromaKeyWindow(ChromaKey *plugin) : PluginClientWindow(plugin, - 320, - 220, - 320, - 220, + xS(320), + yS(220), + xS(320), + yS(220), 0) { this->plugin = plugin; @@ -127,32 +127,34 @@ ChromaKeyWindow::~ChromaKeyWindow() void ChromaKeyWindow::create_objects() { - int x = 10, y = 10, x1 = 100; + int xs10 = xS(10), xs100 = xS(100); + int ys10 = yS(10), ys30 = yS(30), ys50 = yS(50); + int x = xs10, y = ys10, x1 = xS(100); BC_Title *title; add_subwindow(title = new BC_Title(x, y, _("Color:"))); - x += title->get_w() + 10; + x += title->get_w() + xs10; add_subwindow(color = new ChromaKeyColor(plugin, this, x, y)); - x += color->get_w() + 10; - add_subwindow(sample = new BC_SubWindow(x, y, 100, 50)); - y += sample->get_h() + 10; - x = 10; + x += color->get_w() + xs10; + add_subwindow(sample = new BC_SubWindow(x, y, xs100, ys50)); + y += sample->get_h() + xs10; + x = xs10; add_subwindow(new BC_Title(x, y, _("Slope:"))); add_subwindow(slope = new ChromaKeySlope(plugin, x1, y)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Threshold:"))); add_subwindow(threshold = new ChromaKeyThreshold(plugin, x1, y)); - y += 30; + y += ys30; add_subwindow(use_value = new ChromaKeyUseValue(plugin, x1, y)); - y += 30; + y += ys30; add_subwindow(use_colorpicker = new ChromaKeyUseColorPicker(plugin, this, x1, y)); - y += use_colorpicker->get_h() + 10; + y += use_colorpicker->get_h() + xs10; add_subwindow(new ChromaKeyReset(plugin, this, x, y)); color_thread = new ChromaKeyColorThread(plugin, this); @@ -216,8 +218,8 @@ ChromaKeyThreshold::ChromaKeyThreshold(ChromaKey *plugin, int x, int y) : BC_FSlider(x, y, 0, - 200, - 200, + xS(200), + yS(200), (float)0, (float)100, plugin->config.threshold) @@ -237,8 +239,8 @@ ChromaKeySlope::ChromaKeySlope(ChromaKey *plugin, int x, int y) : BC_FSlider(x, y, 0, - 200, - 200, + xS(200), + yS(200), (float)0, (float)100, plugin->config.slope) diff --git a/cinelerra-5.1/plugins/chromakeyhsv/chromakey.C b/cinelerra-5.1/plugins/chromakeyhsv/chromakey.C index 4b47cc70..ba7dd025 100644 --- a/cinelerra-5.1/plugins/chromakeyhsv/chromakey.C +++ b/cinelerra-5.1/plugins/chromakeyhsv/chromakey.C @@ -156,10 +156,10 @@ ChromaKeyConfig::get_color () ChromaKeyWindow::ChromaKeyWindow (ChromaKeyHSV * plugin) : PluginClientWindow(plugin, - 400, - 450, - 400, - 450, + xS(400), + yS(450), + xS(400), + yS(450), 0) { this->plugin = plugin; @@ -174,32 +174,34 @@ ChromaKeyWindow::~ChromaKeyWindow () void ChromaKeyWindow::create_objects () { - int y = 10, y1, x1 = 0, x2 = 10; - int x = 30; + int xs5 = xS(5), xs10 = xS(10), xs30 = xS(30), xs100 = xS(100), xs240 = xS(240); + int ys5 = yS(5), ys10 = yS(10), ys25 = yS(25), ys50 = yS(50); + int y = ys10, y1, x1 = 0, x2 = xs10; + int x = xs30; BC_Title *title; BC_Bar *bar; - int ymargin = get_text_height(MEDIUMFONT) + 5; - int ymargin2 = get_text_height(MEDIUMFONT) + 10; + int ymargin = get_text_height(MEDIUMFONT) + xs5; + int ymargin2 = get_text_height(MEDIUMFONT) + ys10; add_subwindow (title = new BC_Title (x2, y, _("Color:"))); - add_subwindow (color = new ChromaKeyColor (plugin, this, x, y + 25)); + add_subwindow (color = new ChromaKeyColor (plugin, this, x, y + ys25)); add_subwindow (sample = - new BC_SubWindow (x + color->get_w () + 10, y, 100, 50)); - y += sample->get_h () + 10; + new BC_SubWindow (x + color->get_w () + xs10, y, xs100, ys50)); + y += sample->get_h () + ys10; add_subwindow (use_colorpicker = new ChromaKeyUseColorPicker (plugin, this, x, y)); - y += use_colorpicker->get_h() + 10; + y += use_colorpicker->get_h() + ys10; - add_subwindow (new ChromaKeyReset (plugin, this, x2+240, y)); + add_subwindow (new ChromaKeyReset (plugin, this, x2+xs240, y)); add_subwindow (show_mask = new ChromaKeyShowMask (plugin, x2, y)); - y += show_mask->get_h() + 5; + y += show_mask->get_h() + ys5; add_subwindow(bar = new BC_Bar(x2, y, get_w() - x2 * 2)); - y += bar->get_h() + 5; + y += bar->get_h() + ys5; y1 = y; add_subwindow (new BC_Title (x2, y, _("Key parameters:"))); y += ymargin; @@ -220,7 +222,7 @@ ChromaKeyWindow::create_objects () y += ymargin2; add_subwindow(bar = new BC_Bar(x2, y, get_w() - x2 * 2)); - y += bar->get_h() + 5; + y += bar->get_h() + ys5; add_subwindow (title = new BC_Title (x2, y, _("Mask tweaking:"))); y += ymargin; add_subwindow (title = new BC_Title (x, y, _("In Slope:"))); @@ -236,7 +238,7 @@ ChromaKeyWindow::create_objects () add_subwindow(bar = new BC_Bar(x2, y, get_w() - x2 * 2)); - y += bar->get_h() + 5; + y += bar->get_h() + ys5; add_subwindow (title = new BC_Title (x2, y, _("Spill light control:"))); y += ymargin; add_subwindow (title = new BC_Title (x, y, _("Spill Threshold:"))); @@ -264,7 +266,7 @@ ChromaKeyWindow::create_objects () add_subwindow (min_saturation = new ChromaKeyMinSaturation (plugin, x1, y)); y += ymargin; - y += bar->get_h() + 5; + y += bar->get_h() + ys5; y += ymargin2; add_subwindow (in_slope = new ChromaKeyInSlope (plugin, x1, y)); y += ymargin; @@ -273,7 +275,7 @@ ChromaKeyWindow::create_objects () add_subwindow (alpha_offset = new ChromaKeyAlphaOffset (plugin, x1, y)); y += ymargin; - y += bar->get_h() + 5; + y += bar->get_h() + ys5; y += ymargin2; add_subwindow (spill_threshold = new ChromaKeySpillThreshold (plugin, x1, y)); y += ymargin; @@ -322,7 +324,7 @@ ChromaKeyColor::handle_event () ChromaKeyMinBrightness::ChromaKeyMinBrightness (ChromaKeyHSV * plugin, int x, int y):BC_FSlider (x, y, 0, - 200, 200, (float) 0, (float) 100, plugin->config.min_brightness) + xS(200), yS(200), (float) 0, (float) 100, plugin->config.min_brightness) { this->plugin = plugin; set_precision (0.01); @@ -339,7 +341,7 @@ ChromaKeyMinBrightness::handle_event () ChromaKeyMaxBrightness::ChromaKeyMaxBrightness (ChromaKeyHSV * plugin, int x, int y):BC_FSlider (x, y, 0, - 200, 200, (float) 0, (float) 100, plugin->config.max_brightness) + xS(200), yS(200), (float) 0, (float) 100, plugin->config.max_brightness) { this->plugin = plugin; set_precision (0.01); @@ -356,7 +358,7 @@ ChromaKeyMaxBrightness::handle_event () ChromaKeySaturation::ChromaKeySaturation (ChromaKeyHSV * plugin, int x, int y):BC_FSlider (x, y, - 0, 200, 200, (float) 0, (float) 100, plugin->config.saturation) + 0, xS(200), yS(200), (float) 0, (float) 100, plugin->config.saturation) { this->plugin = plugin; set_precision (0.01); @@ -373,7 +375,7 @@ ChromaKeySaturation::handle_event () ChromaKeyMinSaturation::ChromaKeyMinSaturation (ChromaKeyHSV * plugin, int x, int y):BC_FSlider (x, y, 0, - 200, 200, (float) 0, (float) 100, plugin->config.min_saturation) + xS(200), yS(200), (float) 0, (float) 100, plugin->config.min_saturation) { this->plugin = plugin; set_precision (0.01); @@ -390,7 +392,7 @@ ChromaKeyMinSaturation::handle_event () ChromaKeyTolerance::ChromaKeyTolerance (ChromaKeyHSV * plugin, int x, int y):BC_FSlider (x, y, - 0, 200, 200, (float) 0, (float) 100, plugin->config.tolerance) + 0, xS(200), yS(200), (float) 0, (float) 100, plugin->config.tolerance) { this->plugin = plugin; set_precision (0.01); @@ -408,7 +410,7 @@ ChromaKeyTolerance::handle_event () ChromaKeyInSlope::ChromaKeyInSlope (ChromaKeyHSV * plugin, int x, int y):BC_FSlider (x, y, - 0, 200, 200, (float) 0, (float) 20, plugin->config.in_slope) + 0, xS(200), yS(200), (float) 0, (float) 20, plugin->config.in_slope) { this->plugin = plugin; set_precision (0.01); @@ -425,7 +427,7 @@ ChromaKeyInSlope::handle_event () ChromaKeyOutSlope::ChromaKeyOutSlope (ChromaKeyHSV * plugin, int x, int y):BC_FSlider (x, y, - 0, 200, 200, (float) 0, (float) 20, plugin->config.out_slope) + 0, xS(200), yS(200), (float) 0, (float) 20, plugin->config.out_slope) { this->plugin = plugin; set_precision (0.01); @@ -443,7 +445,7 @@ ChromaKeyOutSlope::handle_event () ChromaKeyAlphaOffset::ChromaKeyAlphaOffset (ChromaKeyHSV * plugin, int x, int y):BC_FSlider (x, y, 0, - 200, 200, (float) -100, (float) 100, plugin->config.alpha_offset) + xS(200), yS(200), (float) -100, (float) 100, plugin->config.alpha_offset) { this->plugin = plugin; set_precision (0.01); @@ -516,7 +518,7 @@ ChromaKeyUseColorPicker::handle_event () ChromaKeySpillThreshold::ChromaKeySpillThreshold (ChromaKeyHSV * plugin, int x, int y):BC_FSlider (x, y, 0, - 200, 200, (float) 0, (float) 100, plugin->config.spill_threshold) + xS(200), yS(200), (float) 0, (float) 100, plugin->config.spill_threshold) { this->plugin = plugin; set_precision (0.01); @@ -532,7 +534,7 @@ ChromaKeySpillThreshold::handle_event () ChromaKeySpillAmount::ChromaKeySpillAmount (ChromaKeyHSV * plugin, int x, int y):BC_FSlider (x, y, - 0, 200, 200, (float) 0, (float) 100, plugin->config.spill_amount) + 0, xS(200), yS(200), (float) 0, (float) 100, plugin->config.spill_amount) { this->plugin = plugin; set_precision (0.01); diff --git a/cinelerra-5.1/plugins/color3way/color3waywindow.C b/cinelerra-5.1/plugins/color3way/color3waywindow.C index 1e188f26..f0d2db4c 100644 --- a/cinelerra-5.1/plugins/color3way/color3waywindow.C +++ b/cinelerra-5.1/plugins/color3way/color3waywindow.C @@ -39,8 +39,8 @@ Color3WayWindow::Color3WayWindow(Color3WayMain *plugin) : PluginClientWindow(plugin, plugin->w, plugin->h, - 680, - 370, + xS(720), + yS(400), 1) { this->plugin = plugin; diff --git a/cinelerra-5.1/plugins/colorbalance/colorbalancewindow.C b/cinelerra-5.1/plugins/colorbalance/colorbalancewindow.C index 56d3c27b..91a8cd10 100644 --- a/cinelerra-5.1/plugins/colorbalance/colorbalancewindow.C +++ b/cinelerra-5.1/plugins/colorbalance/colorbalancewindow.C @@ -35,7 +35,7 @@ ColorBalanceWindow::ColorBalanceWindow(ColorBalanceMain *client) - : PluginClientWindow(client, 400, 210, 400, 210, 0) + : PluginClientWindow(client, xS(400), yS(210), xS(400), yS(210), 0) { this->client = client; } @@ -46,37 +46,39 @@ ColorBalanceWindow::~ColorBalanceWindow() void ColorBalanceWindow::create_objects() { - int x = 10, y = 10; - int clrBtn_w = 50; - int x1 = 400 - clrBtn_w - 10; // (window_width - clrBtn_width - margin_rx) + int xs10 = xS(10), xs70 = xS(70), xs280 = xS(280), xs400 = xS(400); + int ys10 = yS(10), ys15 = yS(15), ys25 = yS(25); + int x = xs10, y = ys10; + int clrBtn_w = xS(50); + int x1 = xs400 - clrBtn_w - xs10; // (window_width - clrBtn_width - margin_rx) add_tool(new BC_Title(x, y, _("Color Balance"))); - y += 25; + y += ys25; add_tool(new BC_Title(x, y, _("Cyan"))); - add_tool(cyan = new ColorBalanceSlider(client, &(client->config.cyan), x + 70, y)); - add_tool(new BC_Title(x + 280, y, _("Red"))); + add_tool(cyan = new ColorBalanceSlider(client, &(client->config.cyan), x + xs70, y)); + add_tool(new BC_Title(x + xs280, y, _("Red"))); add_subwindow(cyanClr = new ColorBalanceSliderClr(client, this, x1, y, clrBtn_w, 1)); - y += 25; + y += ys25; add_tool(new BC_Title(x, y, _("Magenta"))); - add_tool(magenta = new ColorBalanceSlider(client, &(client->config.magenta), x + 70, y)); - add_tool(new BC_Title(x + 280, y, _("Green"))); + add_tool(magenta = new ColorBalanceSlider(client, &(client->config.magenta), x + xs70, y)); + add_tool(new BC_Title(x + xs280, y, _("Green"))); add_subwindow(magentaClr = new ColorBalanceSliderClr(client, this, x1, y, clrBtn_w, 2)); - y += 25; + y += ys25; add_tool(new BC_Title(x, y, _("Yellow"))); - add_tool(yellow = new ColorBalanceSlider(client, &(client->config.yellow), x + 70, y)); - add_tool(new BC_Title(x + 280, y, _("Blue"))); + add_tool(yellow = new ColorBalanceSlider(client, &(client->config.yellow), x + xs70, y)); + add_tool(new BC_Title(x + xs280, y, _("Blue"))); add_subwindow(yellowClr = new ColorBalanceSliderClr(client, this, x1, y, clrBtn_w, 3)); - y += 25; + y += ys25; add_tool(preserve = new ColorBalancePreserve(client, x, y)); - y += preserve->get_h() + 10; + y += preserve->get_h() + ys10; add_tool(lock_params = new ColorBalanceLock(client, x, y)); - y += lock_params->get_h() + 15; + y += lock_params->get_h() + ys15; add_tool(new ColorBalanceReset(client, this, x, y)); - add_tool(new ColorBalanceWhite(client, this, int(400 / 2), y)); + add_tool(new ColorBalanceWhite(client, this, int(xS(400) / 2), y)); show_window(); flush(); @@ -106,7 +108,7 @@ void ColorBalanceWindow::update_gui(int clear) ColorBalanceSlider::ColorBalanceSlider(ColorBalanceMain *client, float *output, int x, int y) - : BC_ISlider(x, y, 0, 200, 200, -1000, 1000, (int)*output) + : BC_ISlider(x, y, 0, xS(200), yS(200), -1000, 1000, (int)*output) { this->client = client; this->output = output; diff --git a/cinelerra-5.1/plugins/compressor/compressor.C b/cinelerra-5.1/plugins/compressor/compressor.C index 25eea16e..486a498e 100644 --- a/cinelerra-5.1/plugins/compressor/compressor.C +++ b/cinelerra-5.1/plugins/compressor/compressor.C @@ -833,10 +833,10 @@ void CompressorConfig::optimize() CompressorWindow::CompressorWindow(CompressorEffect *plugin) : PluginClientWindow(plugin, - 650, - 480, - 650, - 480, + xS(650), + yS(480), + xS(650), + yS(480), 0) { this->plugin = plugin; @@ -844,45 +844,47 @@ CompressorWindow::CompressorWindow(CompressorEffect *plugin) void CompressorWindow::create_objects() { - int x = 35, y = 10; - int control_margin = 130; + int xs10 = xS(10), xs20 = xS(20), xs50 = xS(50), xs110 = xS(110); + int ys20 = yS(20), ys30 = yS(30), ys40 = yS(40), ys60 = yS(60), ys70 = yS(70); + int x = xS(35), y = yS(10); + int control_margin = xS(130); add_subwindow(canvas = new CompressorCanvas(plugin, x, y, - get_w() - x - control_margin - 10, - get_h() - y - 70)); + get_w() - x - control_margin - xs10, + get_h() - y - ys70)); canvas->set_cursor(CROSS_CURSOR, 0, 0); x = get_w() - control_margin; add_subwindow(new BC_Title(x, y, _("Reaction secs:"))); - y += 20; + y += ys20; add_subwindow(reaction = new CompressorReaction(plugin, x, y)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Decay secs:"))); - y += 20; + y += ys20; add_subwindow(decay = new CompressorDecay(plugin, x, y)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Trigger Type:"))); - y += 20; + y += ys20; add_subwindow(input = new CompressorInput(plugin, x, y)); input->create_objects(); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Trigger:"))); - y += 20; + y += ys20; add_subwindow(trigger = new CompressorTrigger(plugin, x, y)); if(plugin->config.input != CompressorConfig::TRIGGER) trigger->disable(); - y += 30; + y += ys30; add_subwindow(smooth = new CompressorSmooth(plugin, x, y)); - y += 60; + y += ys60; add_subwindow(clear = new CompressorClear(plugin, x, y)); - x = 10; - y = get_h() - 40; + x = xs10; + y = get_h() - ys40; add_subwindow(new BC_Title(x, y, _("Point:"))); - x += 50; + x += xs50; add_subwindow(x_text = new CompressorX(plugin, x, y)); - x += 110; + x += xs110; add_subwindow(new BC_Title(x, y, _("x"))); - x += 20; + x += xs20; add_subwindow(y_text = new CompressorY(plugin, x, y)); draw_scales(); @@ -908,8 +910,8 @@ void CompressorWindow::draw_scales() #define DIVISIONS 8 for(int i = 0; i <= DIVISIONS; i++) { - int y = canvas->get_y() + 10 + canvas->get_h() / DIVISIONS * i; - int x = canvas->get_x() - 30; + int y = canvas->get_y() + yS(10) + canvas->get_h() / DIVISIONS * i; + int x = canvas->get_x() - xS(30); char string[BCTEXTLEN]; sprintf(string, "%.0f", (float)i / DIVISIONS * plugin->config.min_db); @@ -922,12 +924,12 @@ void CompressorWindow::draw_scales() y = y1 + (y2 - y1) * j / 10; if(j == 0) { - draw_line(canvas->get_x() - 10, y, canvas->get_x(), y); + draw_line(canvas->get_x() - xS(10), y, canvas->get_x(), y); } else if(i < DIVISIONS) { - draw_line(canvas->get_x() - 5, y, canvas->get_x(), y); + draw_line(canvas->get_x() - xS(5), y, canvas->get_x(), y); } } } @@ -935,8 +937,8 @@ void CompressorWindow::draw_scales() for(int i = 0; i <= DIVISIONS; i++) { - int y = canvas->get_h() + 30; - int x = canvas->get_x() + (canvas->get_w() - 10) / DIVISIONS * i; + int y = canvas->get_h() + yS(30); + int x = canvas->get_x() + (canvas->get_w() - xS(10)) / DIVISIONS * i; char string[BCTEXTLEN]; sprintf(string, "%.0f", (1.0 - (float)i / DIVISIONS) * plugin->config.min_db); @@ -949,12 +951,12 @@ void CompressorWindow::draw_scales() x = x1 + (x2 - x1) * j / 10; if(j == 0) { - draw_line(x, canvas->get_y() + canvas->get_h(), x, canvas->get_y() + canvas->get_h() + 10); + draw_line(x, canvas->get_y() + canvas->get_h(), x, canvas->get_y() + canvas->get_h() + yS(10)); } else if(i < DIVISIONS) { - draw_line(x, canvas->get_y() + canvas->get_h(), x, canvas->get_y() + canvas->get_h() + 5); + draw_line(x, canvas->get_y() + canvas->get_h(), x, canvas->get_y() + canvas->get_h() + yS(5)); } } } @@ -995,7 +997,7 @@ void CompressorWindow::update_textboxes() } } -#define POINT_W 10 +#define POINT_W xS(10) void CompressorWindow::update_canvas() { canvas->clear_box(0, 0, canvas->get_w(), canvas->get_h()); @@ -1192,7 +1194,7 @@ int CompressorCanvas::cursor_motion_event() CompressorReaction::CompressorReaction(CompressorEffect *plugin, int x, int y) - : BC_TextBox(x, y, 100, 1, (float)plugin->config.reaction_len) + : BC_TextBox(x, y, xS(100), 1, (float)plugin->config.reaction_len) { this->plugin = plugin; } @@ -1226,7 +1228,7 @@ int CompressorReaction::button_press_event() } CompressorDecay::CompressorDecay(CompressorEffect *plugin, int x, int y) - : BC_TextBox(x, y, 100, 1, (float)plugin->config.decay_len) + : BC_TextBox(x, y, xS(100), 1, (float)plugin->config.decay_len) { this->plugin = plugin; } @@ -1261,7 +1263,7 @@ int CompressorDecay::button_press_event() CompressorX::CompressorX(CompressorEffect *plugin, int x, int y) - : BC_TextBox(x, y, 100, 1, "") + : BC_TextBox(x, y, xS(100), 1, "") { this->plugin = plugin; } @@ -1280,7 +1282,7 @@ int CompressorX::handle_event() CompressorY::CompressorY(CompressorEffect *plugin, int x, int y) - : BC_TextBox(x, y, 100, 1, "") + : BC_TextBox(x, y, xS(100), 1, "") { this->plugin = plugin; } @@ -1301,7 +1303,7 @@ int CompressorY::handle_event() CompressorTrigger::CompressorTrigger(CompressorEffect *plugin, int x, int y) - : BC_TextBox(x, y, (int64_t)100, (int64_t)1, (int64_t)plugin->config.trigger) + : BC_TextBox(x, y, xS(100), 1, (int64_t)plugin->config.trigger) { this->plugin = plugin; } @@ -1340,7 +1342,7 @@ int CompressorTrigger::button_press_event() CompressorInput::CompressorInput(CompressorEffect *plugin, int x, int y) : BC_PopupMenu(x, y, - 100, + xS(100), CompressorInput::value_to_text(plugin->config.input), 1) { diff --git a/cinelerra-5.1/plugins/crikey/crikeywindow.C b/cinelerra-5.1/plugins/crikey/crikeywindow.C index 179d66e2..4295d6d3 100644 --- a/cinelerra-5.1/plugins/crikey/crikeywindow.C +++ b/cinelerra-5.1/plugins/crikey/crikeywindow.C @@ -36,11 +36,11 @@ #include "theme.h" #include "track.h" -#define COLOR_W 50 -#define COLOR_H 30 +#define COLOR_W xS(50) +#define COLOR_H yS(30) CriKeyNum::CriKeyNum(CriKeyWindow *gui, int x, int y, float output) - : BC_TumbleTextBox(gui, output, -32767.0f, 32767.0f, x, y, 120) + : BC_TumbleTextBox(gui, output, -32767.0f, 32767.0f, x, y, xS(120)) { this->gui = gui; set_increment(1); @@ -90,7 +90,7 @@ int CriKeyDrawModeItem::handle_event() return 1; } CriKeyDrawMode::CriKeyDrawMode(CriKeyWindow *gui, int x, int y) - : BC_PopupMenu(x, y, 100, "", 1) + : BC_PopupMenu(x, y, xS(100), "", 1) { this->gui = gui; draw_modes[DRAW_ALPHA] = _("Alpha"); @@ -115,7 +115,7 @@ void CriKeyDrawMode::update(int mode, int send) CriKeyWindow::CriKeyWindow(CriKey *plugin) - : PluginClientWindow(plugin, 380, 400, 380, 400, 0) + : PluginClientWindow(plugin, xS(380), yS(400), xS(380), yS(400), 0) { this->plugin = plugin; this->title_x = 0; this->point_x = 0; @@ -135,14 +135,16 @@ CriKeyWindow::~CriKeyWindow() void CriKeyWindow::create_objects() { + int xs10 = xS(10), xs32 = xS(32); + int ys5 = yS(5), ys10 = yS(10); int x = 10, y = 10; int margin = plugin->get_theme()->widget_border; BC_Title *title; - add_subwindow(title = new BC_Title(x, y+5, _("Draw mode:"))); - int x1 = x + title->get_w() + 10 + margin; + add_subwindow(title = new BC_Title(x, y+ys5, _("Draw mode:"))); + int x1 = x + title->get_w() + xs10 + margin; add_subwindow(draw_mode = new CriKeyDrawMode(this, x1, y)); draw_mode->create_objects(); - y += draw_mode->get_h() + 10 + margin; + y += draw_mode->get_h() + ys10 + margin; CriKeyPoint *pt = plugin->config.points[plugin->config.selected]; add_subwindow(title_x = new BC_Title(x, y, _("X:"))); @@ -162,7 +164,7 @@ void CriKeyWindow::create_objects() add_subwindow(del_point = new CriKeyDelPoint(this, plugin, x1, y)); x1 += del_point->get_w() + margin; add_subwindow(point_dn = new CriKeyPointDn(this, x1, y)); - y += point_y->get_h() + margin + 10; + y += point_y->get_h() + margin + ys10; add_subwindow(title = new BC_Title(x, y, _("Threshold:"))); y += title->get_h() + margin; add_subwindow(threshold = new CriKeyThreshold(this, x, y, get_w() - x * 2)); @@ -173,14 +175,14 @@ void CriKeyWindow::create_objects() if( !grab(plugin->server->mwindow->cwindow->gui) ) eprintf("drag enabled, but compositor already grabbed\n"); } - x1 = x + drag->get_w() + margin + 32; - add_subwindow(reset = new CriKeyReset(this, plugin, x1, y+3)); + x1 = x + drag->get_w() + margin + xs32; + add_subwindow(reset = new CriKeyReset(this, plugin, x1, y+yS(3))); y += drag->get_h() + margin; add_subwindow(point_list = new CriKeyPointList(this, plugin, x, y)); point_list->update(plugin->config.selected); - y += point_list->get_h() + 10; + y += point_list->get_h() + ys10; add_subwindow(notes = new BC_Title(x, y, _("Right click in composer: create new point\n" "Shift-left click in Enable field:\n" @@ -341,15 +343,15 @@ void CriKeyWindow::done_event(int result) } CriKeyPointList::CriKeyPointList(CriKeyWindow *gui, CriKey *plugin, int x, int y) - : BC_ListBox(x, y, 360, 130, LISTBOX_TEXT) + : BC_ListBox(x, y, xS(360), yS(130), LISTBOX_TEXT) { this->gui = gui; this->plugin = plugin; - titles[PT_E] = _("E"); widths[PT_E] = 50; - titles[PT_X] = _("X"); widths[PT_X] = 90; - titles[PT_Y] = _("Y"); widths[PT_Y] = 90; - titles[PT_T] = _("T"); widths[PT_T] = 70; - titles[PT_TAG] = _("Tag"); widths[PT_TAG] = 50; + titles[PT_E] = _("E"); widths[PT_E] = xS(50); + titles[PT_X] = _("X"); widths[PT_X] = xS(90); + titles[PT_Y] = _("Y"); widths[PT_Y] = xS(90); + titles[PT_T] = _("T"); widths[PT_T] = xS(70); + titles[PT_TAG] = _("Tag"); widths[PT_TAG] = xS(50); } CriKeyPointList::~CriKeyPointList() { @@ -588,7 +590,7 @@ int CriKeyDrag::handle_event() } CriKeyNewPoint::CriKeyNewPoint(CriKeyWindow *gui, CriKey *plugin, int x, int y) - : BC_GenericButton(x, y, 80, _("New")) + : BC_GenericButton(x, y, xS(80), _("New")) { this->gui = gui; this->plugin = plugin; @@ -605,7 +607,7 @@ int CriKeyNewPoint::handle_event() } CriKeyDelPoint::CriKeyDelPoint(CriKeyWindow *gui, CriKey *plugin, int x, int y) - : BC_GenericButton(x, y, 80, C_("Del")) + : BC_GenericButton(x, y, xS(80), C_("Del")) { this->gui = gui; this->plugin = plugin; diff --git a/cinelerra-5.1/plugins/crop/cropwin.C b/cinelerra-5.1/plugins/crop/cropwin.C index 654263b4..21c37dbe 100644 --- a/cinelerra-5.1/plugins/crop/cropwin.C +++ b/cinelerra-5.1/plugins/crop/cropwin.C @@ -44,10 +44,10 @@ CropWin::CropWin(CropMain *client) : PluginClientWindow(client, - 420, - 290, - 420, - 290, + xS(420), + yS(290), + xS(420), + yS(290), 0) { this->client = client; @@ -59,79 +59,81 @@ CropWin::~CropWin() void CropWin::create_objects() { - int x = 10, x1 = 40, x2 = 80, x_middle= (get_w() / 2), x3 = 180; - int y = 10; - int clr_x = get_w()-x - 22; // note: clrBtn_w = 22 + int xs10 = xS(10), xs20 = xS(20), xs200 = xS(200); + int ys10 = yS(10), ys20 = yS(20), ys30 = yS(30), ys40 = yS(40); + int x2 = xS(80), x3 = xS(180); + int x = xs10, y = ys10; + int clr_x = get_w()-x - xS(22); // note: clrBtn_w = 22 BC_TitleBar *title_bar; BC_Bar *bar; // Crop section - add_subwindow(title_bar = new BC_TitleBar(x, y, get_w()-2*x, 20, 10, _("Crop"))); - y += 20; + add_subwindow(title_bar = new BC_TitleBar(x, y, get_w()-2*x, xs20, xs10, _("Crop"))); + y += ys20; add_tool(new BC_Title(x, y, _("Left"))); add_tool(new BC_Title((x2-x), y, _("%"))); crop_left_text = new CropLeftText(this, client, (x + x2), y); crop_left_text->create_objects(); - crop_left_slider = new CropLeftSlider(this, client, x3, y, 200); + crop_left_slider = new CropLeftSlider(this, client, x3, y, xs200); add_subwindow(crop_left_slider); clr_x = x3 + crop_left_slider->get_w() + x; add_subwindow(crop_left_clr = new CropEdgesClr(this, client, clr_x, y, RESET_LEFT)); - y += 30; + y += ys30; add_tool(new BC_Title(x, y, _("Top"))); add_tool(new BC_Title((x2-x), y, _("%"))); crop_top_text = new CropTopText(this, client, (x + x2), y); crop_top_text->create_objects(); - crop_top_slider = new CropTopSlider(this, client, x3, y, 200); + crop_top_slider = new CropTopSlider(this, client, x3, y, xs200); add_subwindow(crop_top_slider); add_subwindow(crop_top_clr = new CropEdgesClr(this, client, clr_x, y, RESET_TOP)); - y += 30; + y += ys30; add_tool(new BC_Title(x, y, _("Right"))); add_tool(new BC_Title((x2-x), y, _("%"))); crop_right_text = new CropRightText(this, client, (x + x2), y); crop_right_text->create_objects(); - crop_right_slider = new CropRightSlider(this, client, x3, y, 200); + crop_right_slider = new CropRightSlider(this, client, x3, y, xs200); add_subwindow(crop_right_slider); add_subwindow(crop_right_clr = new CropEdgesClr(this, client, clr_x, y, RESET_RIGHT)); - y += 30; + y += ys30; add_tool(new BC_Title(x, y, _("Bottom"))); add_tool(new BC_Title((x2-x), y, _("%"))); crop_bottom_text = new CropBottomText(this, client, (x + x2), y); crop_bottom_text->create_objects(); - crop_bottom_slider = new CropBottomSlider(this, client, x3, y, 200); + crop_bottom_slider = new CropBottomSlider(this, client, x3, y, xs200); add_subwindow(crop_bottom_slider); add_subwindow(crop_bottom_clr = new CropEdgesClr(this, client, clr_x, y, RESET_BOTTOM)); - y += 40; + y += ys40; // Position section - add_subwindow(title_bar = new BC_TitleBar(x, y, get_w()-2*x, 20, 10, _("Position"))); - y += 20; + add_subwindow(title_bar = new BC_TitleBar(x, y, get_w()-2*x, xs20, xs10, _("Position"))); + y += ys20; add_tool(new BC_Title(x, y, _("X"))); add_tool(new BC_Title((x2-x), y, _("%"))); crop_position_x_text = new CropPositionXText(this, client, (x + x2), y); crop_position_x_text->create_objects(); - crop_position_x_slider = new CropPositionXSlider(this, client, x3, y, 200); + crop_position_x_slider = new CropPositionXSlider(this, client, x3, y, xs200); add_subwindow(crop_position_x_slider); add_subwindow(crop_position_x_clr = new CropEdgesClr(this, client, clr_x, y, RESET_POSITION_X)); - y += 30; + y += ys30; add_tool(new BC_Title(x, y, _("Y"))); add_tool(new BC_Title((x2-x), y, _("%"))); crop_position_y_text = new CropPositionYText(this, client, (x + x2), y); crop_position_y_text->create_objects(); - crop_position_y_slider = new CropPositionYSlider(this, client, x3, y, 200); + crop_position_y_slider = new CropPositionYSlider(this, client, x3, y, xs200); add_subwindow(crop_position_y_slider); add_subwindow(crop_position_y_clr = new CropEdgesClr(this, client, clr_x, y, RESET_POSITION_Y)); - y += 40; + y += ys40; // Reset section add_subwindow(bar = new BC_Bar(x, y, get_w()-2*x)); - y += 10; + y += ys10; add_tool(reset = new CropReset(client, this, x, y)); show_window(); @@ -197,13 +199,8 @@ CropLeftText::CropLeftText(CropWin *win, CropMain *client, int x, int y) - : BC_TumbleTextBox(win, - client->config.crop_l, - (float)0.00, - (float)100.00, - x, - y, - 60, 2) + : BC_TumbleTextBox(win, client->config.crop_l, + (float)0.00, (float)100.00, x, y, xS(60), 2) { this->win = win; this->client = client; @@ -251,13 +248,8 @@ CropTopText::CropTopText(CropWin *win, CropMain *client, int x, int y) - : BC_TumbleTextBox(win, - client->config.crop_t, - (float)0.00, - (float)100.00, - x, - y, - 60, 2) + : BC_TumbleTextBox(win, client->config.crop_t, + (float)0.00, (float)100.00, x, y, xS(60), 2) { this->win = win; this->client = client; @@ -304,13 +296,8 @@ int CropTopSlider::handle_event() CropRightText::CropRightText(CropWin *win, CropMain *client, int x, int y) - : BC_TumbleTextBox(win, - client->config.crop_r, - (float)0.00, - (float)100.00, - x, - y, - 60, 2) + : BC_TumbleTextBox(win, client->config.crop_r, + (float)0.00, (float)100.00, x, y, xS(60), 2) { this->win = win; this->client = client; @@ -357,13 +344,8 @@ int CropRightSlider::handle_event() CropBottomText::CropBottomText(CropWin *win, CropMain *client, int x, int y) - : BC_TumbleTextBox(win, - client->config.crop_b, - (float)0.00, - (float)100.00, - x, - y, - 60, 2) + : BC_TumbleTextBox(win, client->config.crop_b, + (float)0.00, (float)100.00, x, y, xS(60), 2) { this->win = win; this->client = client; @@ -410,13 +392,8 @@ int CropBottomSlider::handle_event() CropPositionXText::CropPositionXText(CropWin *win, CropMain *client, int x, int y) - : BC_TumbleTextBox(win, - client->config.position_x, - (float)-100.00, - (float)100.00, - x, - y, - 60, 2) + : BC_TumbleTextBox(win, client->config.position_x, + (float)-100.00, (float)100.00, x, y, xS(60), 2) { this->win = win; this->client = client; @@ -463,13 +440,8 @@ int CropPositionXSlider::handle_event() CropPositionYText::CropPositionYText(CropWin *win, CropMain *client, int x, int y) - : BC_TumbleTextBox(win, - client->config.position_y, - (float)-100.00, - (float)100.00, - x, - y, - 60, 2) + : BC_TumbleTextBox(win, client->config.position_y, + (float)-100.00, (float)100.00, x, y, xS(60), 2) { this->win = win; this->client = client; diff --git a/cinelerra-5.1/plugins/decimate/decimate.C b/cinelerra-5.1/plugins/decimate/decimate.C index 5f72ea0c..cd2dd7e7 100644 --- a/cinelerra-5.1/plugins/decimate/decimate.C +++ b/cinelerra-5.1/plugins/decimate/decimate.C @@ -210,10 +210,10 @@ int DecimateConfig::equivalent(DecimateConfig *config) DecimateWindow::DecimateWindow(Decimate *plugin) : PluginClientWindow(plugin, - 210, - 160, - 200, - 160, + xS(210), + yS(160), + xS(200), + yS(160), 0) { this->plugin = plugin; @@ -226,7 +226,8 @@ DecimateWindow::~DecimateWindow() void DecimateWindow::create_objects() { - int x = 10, y = 10; + int ys30 = yS(30); + int x = xS(10), y = yS(10); frame_rates.append(new BC_ListBoxItem("1")); frame_rates.append(new BC_ListBoxItem("5")); @@ -244,24 +245,24 @@ void DecimateWindow::create_objects() BC_Title *title; add_subwindow(title = new BC_Title(x, y, _("Input frames per second:"))); - y += 30; + y += ys30; add_subwindow(rate = new DecimateRate(plugin, this, x, y)); add_subwindow(rate_menu = new DecimateRateMenu(plugin, this, - x + rate->get_w() + 5, + x + rate->get_w() + xS(5), y)); - y += 30; + y += ys30; add_subwindow(title = new BC_Title(x, y, _("Last frame dropped: "))); add_subwindow(last_dropped = new BC_Title(x + title->get_w() + 5, y, "")); -// y += 30; +// y += ys30; // add_subwindow(difference = new DecimateDifference(plugin, // x, // y)); -// y += 30; +// y += ys30; // add_subwindow(avg_difference = new DecimateAvgDifference(plugin, // x, // y)); @@ -285,10 +286,7 @@ DecimateRate::DecimateRate(Decimate *plugin, DecimateWindow *gui, int x, int y) - : BC_TextBox(x, - y, - 90, - 1, + : BC_TextBox(x, y, xS(90), 1, (float)plugin->config.input_rate) { this->plugin = plugin; @@ -345,8 +343,8 @@ DecimateRateMenu::DecimateRateMenu(Decimate *plugin, int y) : BC_ListBox(x, y, - 100, - 200, + xS(100), + yS(200), LISTBOX_TEXT, &gui->frame_rates, 0, diff --git a/cinelerra-5.1/plugins/deinterlace-cv/deinterwindow-cv.C b/cinelerra-5.1/plugins/deinterlace-cv/deinterwindow-cv.C index d3be67af..068be6de 100644 --- a/cinelerra-5.1/plugins/deinterlace-cv/deinterwindow-cv.C +++ b/cinelerra-5.1/plugins/deinterlace-cv/deinterwindow-cv.C @@ -27,10 +27,10 @@ DeInterlaceWindow::DeInterlaceWindow(DeInterlaceMain *client) : PluginClientWindow(client, - 400, - 200, - 400, - 200, + xS(400), + yS(200), + xS(400), + yS(200), 0) { this->client = client; @@ -44,15 +44,17 @@ DeInterlaceWindow::~DeInterlaceWindow() void DeInterlaceWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10); + int ys10 = yS(10), ys25 = yS(25); + int x = xs10, y = ys10; add_tool(new BC_Title(x, y, _("Select deinterlacing mode"))); - y += 25; + y += ys25; add_tool(mode = new DeInterlaceMode(client, this, x, y)); mode->create_objects(); - y += 25; + y += ys25; optional_controls_x=x; optional_controls_y=y; - y += 125; + y += yS(125); char string[BCTEXTLEN]; get_status_string(string, 0); add_tool(status = new BC_Title(x, y, string)); @@ -85,27 +87,27 @@ int DeInterlaceWindow::set_mode(int mode, int recursive) case DEINTERLACE_KEEP: case DEINTERLACE_BOBWEAVE: add_subwindow(dominance_top = new DeInterlaceDominanceTop(client, this, x, y, _("Keep top field"))); - y+=25; + y+=yS(25); add_subwindow(dominance_bottom = new DeInterlaceDominanceBottom(client, this, x, y, _("Keep bottom field"))); - y+=25; + y+=yS(25); break; case DEINTERLACE_AVG_1F: add_subwindow(dominance_top = new DeInterlaceDominanceTop(client, this, x, y, _("Average top fields"))); - y+=25; + y+=yS(25); add_subwindow(dominance_bottom = new DeInterlaceDominanceBottom(client, this, x, y,_("Average bottom fields"))); - y+=25; + y+=yS(25); break; case DEINTERLACE_SWAP: add_subwindow(dominance_top = new DeInterlaceDominanceTop(client, this, x, y, _("Top field first"))); - y+=25; + y+=yS(25); add_subwindow(dominance_bottom = new DeInterlaceDominanceBottom(client, this, x, y, _("Bottom field first"))); - y+=25; + y+=yS(25); break; case DEINTERLACE_TEMPORALSWAP: add_subwindow(dominance_top = new DeInterlaceDominanceTop(client, this, x, y, _("Top field first"))); - y+=25; + y+=yS(25); add_subwindow(dominance_bottom = new DeInterlaceDominanceBottom(client, this, x, y, _("Bottom field first"))); - y+=25; + y+=yS(25); break; case DEINTERLACE_NONE: case DEINTERLACE_AVG: @@ -123,13 +125,13 @@ int DeInterlaceWindow::set_mode(int mode, int recursive) case DEINTERLACE_AVG_1F: add_subwindow(adaptive = new DeInterlaceAdaptive(client, x, y)); - add_subwindow(threshold = new DeInterlaceThreshold(client, x + 150, y)); - add_subwindow(threshold->title_caption=new BC_Title(x+150, y + 50, _("Threshold"))); + add_subwindow(threshold = new DeInterlaceThreshold(client, x + xS(150), y)); + add_subwindow(threshold->title_caption=new BC_Title(x+xS(150), y + yS(50), _("Threshold"))); adaptive->update(client->config.adaptive?BC_Toggle::TOGGLE_CHECKED:0); break; case DEINTERLACE_BOBWEAVE: - add_subwindow(threshold = new DeInterlaceThreshold(client, x + 150, y)); - add_subwindow(threshold->title_caption=new BC_Title(x+150, y + 50, _("Bob Threshold"))); + add_subwindow(threshold = new DeInterlaceThreshold(client, x + xS(150), y)); + add_subwindow(threshold->title_caption=new BC_Title(x+xS(150), y + yS(50), _("Bob Threshold"))); break; case DEINTERLACE_NONE: case DEINTERLACE_KEEP: @@ -237,7 +239,7 @@ DeInterlaceMode::DeInterlaceMode(DeInterlaceMain*plugin, DeInterlaceWindow *gui, int x, int y) - : BC_PopupMenu(x, y, 200, to_text(plugin->config.mode), 1) + : BC_PopupMenu(x, y, xS(200), to_text(plugin->config.mode), 1) { this->plugin = plugin; this->gui = gui; diff --git a/cinelerra-5.1/plugins/deinterlace/deinterlace.C b/cinelerra-5.1/plugins/deinterlace/deinterlace.C index 7ebf6330..e6a15283 100644 --- a/cinelerra-5.1/plugins/deinterlace/deinterlace.C +++ b/cinelerra-5.1/plugins/deinterlace/deinterlace.C @@ -107,7 +107,7 @@ int DeInterlaceMain::is_realtime() { return 1; } int h = input->get_h(); \ changed_rows = 0; \ \ - type **in_rows = (type**)input->get_rows(); \ + type **in_rows = (type**)input->get_rows(); \ type **out_rows = (type**)temp->get_rows(); \ int max_h = h - 1; \ /* temp_type abs_diff = 0, total = 0; */ \ diff --git a/cinelerra-5.1/plugins/deinterlace/deinterwindow.C b/cinelerra-5.1/plugins/deinterlace/deinterwindow.C index 43f77d17..5304b156 100644 --- a/cinelerra-5.1/plugins/deinterlace/deinterwindow.C +++ b/cinelerra-5.1/plugins/deinterlace/deinterwindow.C @@ -32,10 +32,10 @@ DeInterlaceWindow::DeInterlaceWindow(DeInterlaceMain *client) : PluginClientWindow(client, - 200, - 250, - 200, - 250, + xS(200), + yS(250), + xS(200), + yS(250), 0) { this->client = client; @@ -47,28 +47,30 @@ DeInterlaceWindow::~DeInterlaceWindow() void DeInterlaceWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10); + int ys10 = yS(10), ys25 = yS(25); + int x = xs10, y = ys10; add_tool(new BC_Title(x, y, _("Select lines to keep"))); - y += 25; + y += ys25; add_tool(none = new DeInterlaceOption(client, this, DEINTERLACE_NONE, x, y, _("Do nothing"))); - y += 25; + y += ys25; add_tool(odd_fields = new DeInterlaceOption(client, this, DEINTERLACE_EVEN, x, y, _("Odd lines"))); - y += 25; + y += ys25; add_tool(even_fields = new DeInterlaceOption(client, this, DEINTERLACE_ODD, x, y, _("Even lines"))); - y += 25; + y += ys25; add_tool(average_fields = new DeInterlaceOption(client, this, DEINTERLACE_AVG, x, y, _("Average lines"))); - y += 25; + y += ys25; add_tool(swap_odd_fields = new DeInterlaceOption(client, this, DEINTERLACE_SWAP_ODD, x, y, _("Swap odd fields"))); - y += 25; + y += ys25; add_tool(swap_even_fields = new DeInterlaceOption(client, this, DEINTERLACE_SWAP_EVEN, x, y, _("Swap even fields"))); - y += 25; + y += ys25; add_tool(avg_even = new DeInterlaceOption(client, this, DEINTERLACE_AVG_EVEN, x, y, _("Average even lines"))); // draw_line(170, y + 5, 190, y + 5); // draw_line(190, y + 5, 190, y + 70); // draw_line(150, y + 70, 190, y + 70); - y += 25; - add_tool(avg_odd = new DeInterlaceOption(client, this, DEINTERLACE_AVG_ODD, x, y, _("Average odd lines"))); + y += ys25; + add_tool(avg_odd = new DeInterlaceOption(client, this, DEINTERLACE_AVG_ODD, x, y, _("Average odd lines"))); // draw_line(170, y + 5, 190, y + 5); // y += 30; // add_tool(adaptive = new DeInterlaceAdaptive(client, x, y)); diff --git a/cinelerra-5.1/plugins/delayaudio/delayaudio.C b/cinelerra-5.1/plugins/delayaudio/delayaudio.C index 561b29e1..7fa8af60 100644 --- a/cinelerra-5.1/plugins/delayaudio/delayaudio.C +++ b/cinelerra-5.1/plugins/delayaudio/delayaudio.C @@ -205,7 +205,7 @@ void DelayAudio::update_gui() DelayAudioWindow::DelayAudioWindow(DelayAudio *plugin) - : PluginClientWindow(plugin, 285, 80, 285, 80, 0) + : PluginClientWindow(plugin, xS(285), yS(80), xS(285), yS(80), 0) { this->plugin = plugin; } @@ -216,12 +216,14 @@ DelayAudioWindow::~DelayAudioWindow() void DelayAudioWindow::create_objects() { - add_subwindow(new BC_Title(10, 10, _("Delay seconds:"))); + int xs10 = xS(10); + int ys10 = yS(10), ys40 = yS(40); + add_subwindow(new BC_Title(xs10, ys10, _("Delay seconds:"))); length = new DelayAudioTextBox( plugin, this, - 10, - 40); + xs10, + ys40); length->create_objects(); update_gui(); show_window(); diff --git a/cinelerra-5.1/plugins/delayvideo/delayvideo.C b/cinelerra-5.1/plugins/delayvideo/delayvideo.C index 2ec90f04..3aaa8530 100644 --- a/cinelerra-5.1/plugins/delayvideo/delayvideo.C +++ b/cinelerra-5.1/plugins/delayvideo/delayvideo.C @@ -71,10 +71,10 @@ void DelayVideoConfig::interpolate(DelayVideoConfig &prev, DelayVideoWindow::DelayVideoWindow(DelayVideo *plugin) : PluginClientWindow(plugin, - 210, - 120, - 210, - 120, + xS(210), + yS(120), + xS(210), + yS(120), 0) { this->plugin = plugin; @@ -87,10 +87,12 @@ DelayVideoWindow::~DelayVideoWindow() void DelayVideoWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10); + int ys10 = yS(10), ys20 = yS(20); + int x = xs10, y = ys10; add_subwindow(new BC_Title(x, y, _("Delay seconds:"))); - y += 20; + y += ys20; slider = new DelayVideoSlider(this, plugin, x, y); slider->create_objects(); show_window(); @@ -125,7 +127,7 @@ DelayVideoSlider::DelayVideoSlider(DelayVideoWindow *window, (float)10, x, y, - 150) + xS(150)) { this->plugin = plugin; set_increment(0.1); diff --git a/cinelerra-5.1/plugins/denoise/denoise.C b/cinelerra-5.1/plugins/denoise/denoise.C index 57e0be59..4682740e 100644 --- a/cinelerra-5.1/plugins/denoise/denoise.C +++ b/cinelerra-5.1/plugins/denoise/denoise.C @@ -754,17 +754,19 @@ void DenoiseConfig::interpolate(DenoiseConfig &prev, DenoiseWindow::DenoiseWindow(DenoiseEffect *plugin) - : PluginClientWindow(plugin, 280, 50, 280, 50, 0) + : PluginClientWindow(plugin, xS(280), yS(50), xS(280), yS(50), 0) { this->plugin = plugin; } void DenoiseWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10), xs70 = xS(70); + int ys10 = yS(10); + int x = xs10, y = ys10; add_subwindow(new BC_Title(x, y, _("Level:"))); - x += 70; + x += xs70; add_subwindow(scale = new DenoiseLevel(plugin, x, y)); show_window(); flush(); diff --git a/cinelerra-5.1/plugins/denoisefft/denoisefft.C b/cinelerra-5.1/plugins/denoisefft/denoisefft.C index 21ce0c19..20b99005 100644 --- a/cinelerra-5.1/plugins/denoisefft/denoisefft.C +++ b/cinelerra-5.1/plugins/denoisefft/denoisefft.C @@ -211,7 +211,7 @@ DenoiseFFTSamples::DenoiseFFTSamples(DenoiseFFTEffect *plugin, int x, int y, char *text) - : BC_PopupMenu(x, y, 100, text, 1) + : BC_PopupMenu(x, y, xS(140), text, 1) { this->plugin = plugin; } @@ -227,10 +227,10 @@ int DenoiseFFTSamples::handle_event() DenoiseFFTWindow::DenoiseFFTWindow(DenoiseFFTEffect *plugin) : PluginClientWindow(plugin, - 300, - 130, - 300, - 130, + xS(300), + yS(130), + xS(300), + yS(130), 0) { this->plugin = plugin; @@ -238,19 +238,21 @@ DenoiseFFTWindow::DenoiseFFTWindow(DenoiseFFTEffect *plugin) void DenoiseFFTWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10), xs100 = xS(100), xs130 = xS(130); + int ys10 = yS(10), ys20 = yS(20); + int x = xs10, y = ys10; add_subwindow(new BC_Title(x, y, _("Denoise power:"))); - add_subwindow(level = new DenoiseFFTLevel(plugin, x + 130, y)); - y += level->get_h() + 10; + add_subwindow(level = new DenoiseFFTLevel(plugin, x + xs130, y)); + y += level->get_h() + ys10; add_subwindow(new BC_Title(x, y, _("Number of samples for reference:"))); - y += 20; + y += ys20; add_subwindow(new BC_Title(x, y, _("The keyframe is the start of the reference"))); - y += 20; + y += ys20; char string[BCTEXTLEN]; sprintf(string, "%d\n", plugin->config.samples); - add_subwindow(samples = new DenoiseFFTSamples(plugin, x + 100, y, string)); + add_subwindow(samples = new DenoiseFFTSamples(plugin, x + xs100, y, string)); for(int i = WINDOW_SIZE; i < 0x100000; ) { sprintf(string, "%d", i); diff --git a/cinelerra-5.1/plugins/denoisemjpeg/denoisemjpeg.C b/cinelerra-5.1/plugins/denoisemjpeg/denoisemjpeg.C index 22a5a335..f4476679 100644 --- a/cinelerra-5.1/plugins/denoisemjpeg/denoisemjpeg.C +++ b/cinelerra-5.1/plugins/denoisemjpeg/denoisemjpeg.C @@ -353,7 +353,7 @@ int DenoiseMJPEGDelay::handle_event() DenoiseMJPEGWindow::DenoiseMJPEGWindow(DenoiseMJPEG *plugin) - : PluginClientWindow(plugin, 250, 350, 0, 0, 1) + : PluginClientWindow(plugin, xS(250), yS(350), 0, 0, 1) { this->plugin = plugin; } @@ -361,7 +361,9 @@ DenoiseMJPEGWindow::DenoiseMJPEGWindow(DenoiseMJPEG *plugin) void DenoiseMJPEGWindow::create_objects() { - int x1 = 10, y1 = 20, x2 = 140, x3 = 180, y2 = 10, margin = 30, margin2 = 25; + int xs10 = xS(10), xs25 = xS(25), xs30 = xS(30), xs140 = xS(140), xs180 = xS(180); + int ys10 = yS(10), ys20 = yS(20); + int x1 = xs10, y1 = ys20, x2 = xs140, x3 = xs180, y2 = ys10, margin = xs30, margin2 = xs25; add_subwindow(new BC_Title(x1, y1, _("Search radius:"))); add_subwindow(radius = new DenoiseMJPEGRadius(plugin, x2, y2)); y1 += margin; diff --git a/cinelerra-5.1/plugins/denoiseseltempavg/seltempavgwindow.C b/cinelerra-5.1/plugins/denoiseseltempavg/seltempavgwindow.C index 9a5b1ba6..42c92d70 100644 --- a/cinelerra-5.1/plugins/denoiseseltempavg/seltempavgwindow.C +++ b/cinelerra-5.1/plugins/denoiseseltempavg/seltempavgwindow.C @@ -30,10 +30,10 @@ SelTempAvgWindow::SelTempAvgWindow(SelTempAvgMain *client) : PluginClientWindow(client, - 310, - 540, - 300, - 540, + xS(310), + yS(540), + xS(300), + yS(540), 0) { this->client = client; diff --git a/cinelerra-5.1/plugins/denoisevideo/denoisevideo.C b/cinelerra-5.1/plugins/denoisevideo/denoisevideo.C index fa0bce49..bdcc5558 100644 --- a/cinelerra-5.1/plugins/denoisevideo/denoisevideo.C +++ b/cinelerra-5.1/plugins/denoisevideo/denoisevideo.C @@ -105,8 +105,8 @@ DenoiseVideoFrames::DenoiseVideoFrames(DenoiseVideo *plugin, int x, int y) : BC_ISlider(x, y, 0, - 190, - 200, + xS(190), + yS(200), 1, 256, plugin->config.frames) @@ -234,10 +234,10 @@ int DenoiseVideoCountSame::handle_event() DenoiseVideoWindow::DenoiseVideoWindow(DenoiseVideo *plugin) : PluginClientWindow(plugin, - 250, - 300, - 250, - 300, + xS(250), + yS(300), + xS(250), + yS(300), 0) { this->plugin = plugin; @@ -246,38 +246,40 @@ DenoiseVideoWindow::DenoiseVideoWindow(DenoiseVideo *plugin) void DenoiseVideoWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10); + int ys5 = yS(5), ys10 = yS(10), ys30 = yS(30); + int x = xs10, y = ys10; BC_Title *title; BC_Bar *bar; add_subwindow(new BC_Title(x, y, _("Frames to accumulate:"))); - y += 20; + y += yS(20); add_subwindow(frames = new DenoiseVideoFrames(plugin, x, y)); - y += frames->get_h() + 5; + y += frames->get_h() + ys5; add_subwindow(title = new BC_Title(x, y, _("Threshold:"))); - y += title->get_h() + 5; + y += title->get_h() + ys5; threshold = new DenoiseVideoThreshold(plugin, this, x, y); threshold->create_objects(); - y += threshold->get_h() + 5; + y += threshold->get_h() + ys5; add_subwindow(bar = new BC_Bar(x, y, get_w() - x * 2)); - y += bar->get_h() + 5; + y += bar->get_h() + ys5; add_subwindow(count_changed = new DenoiseVideoCountChanged(plugin, this, x, y)); - y += count_changed->get_h() + 5; + y += count_changed->get_h() + ys5; add_subwindow(count_same = new DenoiseVideoCountSame(plugin, this, x, y)); - y += count_same->get_h() + 5; + y += count_same->get_h() + ys5; add_subwindow(bar = new BC_Bar(x, y, get_w() - x * 2)); - y += bar->get_h() + 5; + y += bar->get_h() + ys5; add_subwindow(do_r = new DenoiseVideoToggle(plugin, this, x, y, &plugin->config.do_r, _("Red"))); - y += 30; + y += ys30; add_subwindow(do_g = new DenoiseVideoToggle(plugin, this, x, y, &plugin->config.do_g, _("Green"))); - y += 30; + y += ys30; add_subwindow(do_b = new DenoiseVideoToggle(plugin, this, x, y, &plugin->config.do_b, _("Blue"))); - y += 30; + y += ys30; add_subwindow(do_a = new DenoiseVideoToggle(plugin, this, x, y, &plugin->config.do_a, _("Alpha"))); show_window(); flush(); diff --git a/cinelerra-5.1/plugins/descratch/descratch.C b/cinelerra-5.1/plugins/descratch/descratch.C index 3d82fdd9..b48c4d0e 100644 --- a/cinelerra-5.1/plugins/descratch/descratch.C +++ b/cinelerra-5.1/plugins/descratch/descratch.C @@ -474,7 +474,7 @@ NEW_WINDOW_MACRO(DeScratchMain, DeScratchWindow) DeScratchWindow::DeScratchWindow(DeScratchMain *plugin) - : PluginClientWindow(plugin, 512, 270, 512, 270, 0) + : PluginClientWindow(plugin, xS(512), yS(270), xS(512), yS(270), 0) { this->plugin = plugin; } @@ -485,7 +485,9 @@ DeScratchWindow::~DeScratchWindow() void DeScratchWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10), xs15 = xS(15), xs16 = xS(16); + int ys10 = yS(10), ys15 = yS(15), ys30 = yS(30); + int x = xs10, y = ys10; plugin->load_configuration(); DeScratchConfig &config = plugin->config; @@ -493,75 +495,75 @@ void DeScratchWindow::create_objects() add_tool(title = new BC_Title(x, y, _("DeScratch:"))); int w1 = DeScratchReset::calculate_w(this, _("Reset")); - add_tool(reset = new DeScratchReset(this, get_w()-w1-15, y)); + add_tool(reset = new DeScratchReset(this, get_w()-w1-xs15, y)); - y += title->get_h() + 15; + y += title->get_h() + ys15; int x1 = x, x2 = get_w()/2; add_tool(title = new BC_Title(x1=x, y, _("threshold:"))); - x1 += title->get_w()+16; - add_tool(threshold = new DeScratchISlider(this, x1, y, x2-x1-10, 0,64, &config.threshold)); + x1 += title->get_w()+xs16; + add_tool(threshold = new DeScratchISlider(this, x1, y, x2-x1-xs10, 0,64, &config.threshold)); add_tool(title = new BC_Title(x1=x2, y, _("asymmetry:"))); - x1 += title->get_w()+16; - add_tool(asymmetry = new DeScratchFSlider(this, x1, y, get_w()-x1-15, 0,100., &config.asymmetry)); - y += threshold->get_h() + 10; + x1 += title->get_w()+xs16; + add_tool(asymmetry = new DeScratchFSlider(this, x1, y, get_w()-x1-xs15, 0,100., &config.asymmetry)); + y += threshold->get_h() + ys10; add_tool(title = new BC_Title(x1=x, y, _("Mode:"))); - x1 += title->get_w()+16; + x1 += title->get_w()+xs16; add_tool(title = new BC_Title(x1, y, _("y:"))); - w1 = title->get_w()+16; + w1 = title->get_w()+xs16; add_tool(y_mode = new DeScratchMode(this, (x1+=w1), y, &config.mode_y)); - y_mode->create_objects(); x1 += y_mode->get_w()+16; + y_mode->create_objects(); x1 += y_mode->get_w()+xs16; add_tool(title = new BC_Title(x1, y, _("u:"))); add_tool(u_mode = new DeScratchMode(this, (x1+=w1), y, &config.mode_u)); - u_mode->create_objects(); x1 += u_mode->get_w()+16; + u_mode->create_objects(); x1 += u_mode->get_w()+xs16; add_tool(title = new BC_Title(x1, y, _("v:"))); add_tool(v_mode = new DeScratchMode(this, (x1+=w1), y, &config.mode_v)); v_mode->create_objects(); - y += y_mode->get_h() + 10; + y += y_mode->get_h() + ys10; add_tool(title = new BC_Title(x1=x, y, _("width:"))); - w1 = title->get_w()+16; x1 += w1; + w1 = title->get_w()+xs16; x1 += w1; add_tool(title = new BC_Title(x1, y, _("min:"))); - x1 += title->get_w()+16; - add_tool(min_width = new DeScratchISlider(this, x1, y, x2-x1-10, 1,16, &config.min_width)); + x1 += title->get_w()+xs16; + add_tool(min_width = new DeScratchISlider(this, x1, y, x2-x1-xs10, 1,16, &config.min_width)); add_tool(title = new BC_Title(x1=x2, y, _("max:"))); - x1 += title->get_w()+16; - add_tool(max_width = new DeScratchISlider(this, x1, y, get_w()-x1-15, 1,16, &config.max_width)); - y += min_width->get_h() + 10; + x1 += title->get_w()+xs16; + add_tool(max_width = new DeScratchISlider(this, x1, y, get_w()-x1-xs15, 1,16, &config.max_width)); + y += min_width->get_h() + ys10; add_tool(title = new BC_Title(x1=x, y, _("len:"))); - w1 = title->get_w()+16; x1 += w1; + w1 = title->get_w()+xs16; x1 += w1; add_tool(title = new BC_Title(x1, y, _("min:"))); - x1 += title->get_w()+16; - add_tool(min_len = new DeScratchFSlider(this, x1, y, x2-x1-10, 0.0,100.0, &config.min_len)); + x1 += title->get_w()+xs16; + add_tool(min_len = new DeScratchFSlider(this, x1, y, x2-x1-xs10, 0.0,100.0, &config.min_len)); add_tool(title = new BC_Title(x1=x2, y, _("max:"))); - x1 += title->get_w()+16; - add_tool(max_len = new DeScratchFSlider(this, x1, y, get_w()-x1-15, 0.0,100.0, &config.max_len)); - y += min_len->get_h() + 10; + x1 += title->get_w()+xs16; + add_tool(max_len = new DeScratchFSlider(this, x1, y, get_w()-x1-xs15, 0.0,100.0, &config.max_len)); + y += min_len->get_h() + ys10; add_tool(title = new BC_Title(x1=x, y, _("len:"))); - w1 = title->get_w()+16; x1 += w1; + w1 = title->get_w()+xs16; x1 += w1; add_tool(title = new BC_Title(x1, y, _("blur:"))); - x1 += title->get_w()+16; - add_tool(blur_len = new DeScratchISlider(this, x1, y, x2-x1-10, 0,8, &config.blur_len)); + x1 += title->get_w()+xs16; + add_tool(blur_len = new DeScratchISlider(this, x1, y, x2-x1-xs10, 0,8, &config.blur_len)); add_tool(title = new BC_Title(x1=x2, y, _("gap:"))); - x1 += title->get_w()+16; - add_tool(gap_len = new DeScratchFSlider(this, x1, y, get_w()-x1-15, 0.0,100.0, &config.gap_len)); - y += blur_len->get_h() + 10; + x1 += title->get_w()+xs16; + add_tool(gap_len = new DeScratchFSlider(this, x1, y, get_w()-x1-xs15, 0.0,100.0, &config.gap_len)); + y += blur_len->get_h() + ys10; add_tool(title = new BC_Title(x1=x, y, _("max angle:"))); - w1 = title->get_w()+16; x1 += w1; - add_tool(max_angle = new DeScratchFSlider(this, x1, y, x2-x1-10, 0.0,15.0, &config.max_angle)); + w1 = title->get_w()+xs16; x1 += w1; + add_tool(max_angle = new DeScratchFSlider(this, x1, y, x2-x1-xs10, 0.0,15.0, &config.max_angle)); add_tool(title = new BC_Title(x1=x2, y, _("fade:"))); - x1 += title->get_w()+16; - add_tool(ffade = new DeScratchFSlider(this, x1, y, get_w()-x1-15, 0.0,100.0, &config.ffade)); - y += max_angle->get_h() + 10; + x1 += title->get_w()+xs16; + add_tool(ffade = new DeScratchFSlider(this, x1, y, get_w()-x1-xs15, 0.0,100.0, &config.ffade)); + y += max_angle->get_h() + ys10; add_tool(title = new BC_Title(x1=x, y, _("border:"))); - x1 += title->get_w()+16; - add_tool(border = new DeScratchISlider(this, x1, y, x2-x1-10, 0,16, &config.border)); + x1 += title->get_w()+xs16; + add_tool(border = new DeScratchISlider(this, x1, y, x2-x1-xs10, 0,16, &config.border)); add_tool(mark = new DeScratchMark(this, x1=x2, y)); - x1 += mark->get_w() + 10; + x1 += mark->get_w() + xs10; add_tool(edge_only = new DeScratchEdgeOnly(this, x1, y)); show_window(); @@ -607,7 +609,7 @@ int DeScratchModeItem::handle_event() } DeScratchMode::DeScratchMode(DeScratchWindow *win, int x, int y, int *value) - : BC_PopupMenu(x, y, 100, "", 1) + : BC_PopupMenu(x, y, xS(100), "", 1) { this->win = win; this->value = value; diff --git a/cinelerra-5.1/plugins/despike/despikewindow.C b/cinelerra-5.1/plugins/despike/despikewindow.C index e5c2b0d3..437a6af9 100644 --- a/cinelerra-5.1/plugins/despike/despikewindow.C +++ b/cinelerra-5.1/plugins/despike/despikewindow.C @@ -33,10 +33,10 @@ DespikeWindow::DespikeWindow(Despike *despike) : PluginClientWindow(despike, - 230, - 110, - 230, - 110, + xS(230), + yS(110), + xS(230), + yS(110), 0) { this->despike = despike; @@ -48,13 +48,15 @@ DespikeWindow::~DespikeWindow() void DespikeWindow::create_objects() { - int x = 10, y = 10; - add_tool(new BC_Title(5, y, _("Maximum level:"))); - y += 20; + int xs5 = xS(5), xs10 = xS(10); + int ys10 = yS(10), ys20 = yS(20), ys30 = yS(30); + int x = xs10, y = ys10; + add_tool(new BC_Title(xs5, y, _("Maximum level:"))); + y += ys20; add_tool(level = new DespikeLevel(despike, x, y)); - y += 30; - add_tool(new BC_Title(5, y, _("Maximum rate of change:"))); - y += 20; + y += ys30; + add_tool(new BC_Title(xs5, y, _("Maximum rate of change:"))); + y += ys20; add_tool(slope = new DespikeSlope(despike, x, y)); show_window(); flush(); @@ -68,8 +70,8 @@ DespikeLevel::DespikeLevel(Despike *despike, int x, int y) : BC_FSlider(x, y, 0, - 200, - 200, + xS(200), + yS(200), INFINITYGAIN, 0, despike->config.level) @@ -87,8 +89,8 @@ DespikeSlope::DespikeSlope(Despike *despike, int x, int y) : BC_FSlider(x, y, 0, - 200, - 200, + xS(200), + yS(200), INFINITYGAIN, 0, despike->config.slope) diff --git a/cinelerra-5.1/plugins/diffkey/diffkey.C b/cinelerra-5.1/plugins/diffkey/diffkey.C index e863f593..fb8bc99b 100644 --- a/cinelerra-5.1/plugins/diffkey/diffkey.C +++ b/cinelerra-5.1/plugins/diffkey/diffkey.C @@ -218,7 +218,7 @@ void DiffKeyConfig::interpolate(DiffKeyConfig &prev, DiffKeyThreshold::DiffKeyThreshold(DiffKey *plugin, int x, int y) - : BC_FSlider(x, y, 0, 200, 200, 0, 100, plugin->config.threshold) + : BC_FSlider(x, y, 0, xS(200), yS(200), 0, 100, plugin->config.threshold) { this->plugin = plugin; } @@ -238,7 +238,7 @@ int DiffKeyThreshold::handle_event() DiffKeySlope::DiffKeySlope(DiffKey *plugin, int x, int y) - : BC_FSlider(x, y, 0, 200, 200, 0, 100, plugin->config.slope) + : BC_FSlider(x, y, 0, xS(200), yS(200), 0, 100, plugin->config.slope) { this->plugin = plugin; } @@ -273,10 +273,10 @@ int DiffKeyDoValue::handle_event() DiffKeyGUI::DiffKeyGUI(DiffKey *plugin) : PluginClientWindow(plugin, - 320, - 100, - 320, - 100, + xS(320), + yS(100), + xS(320), + yS(100), 0) { this->plugin = plugin; @@ -289,18 +289,20 @@ DiffKeyGUI::~DiffKeyGUI() void DiffKeyGUI::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10); + int ys10 = yS(10); + int x = xs10, y = ys10; BC_Title *title; add_subwindow(title = new BC_Title(x, y, _("Threshold:"))); - x += title->get_w() + 10; + x += title->get_w() + xs10; add_subwindow(threshold = new DiffKeyThreshold(plugin, x, y)); - x = 10; - y += threshold->get_h() + 10; + x = xs10; + y += threshold->get_h() + ys10; add_subwindow(title = new BC_Title(x, y, _("Slope:"))); - x += title->get_w() + 10; + x += title->get_w() + xs10; add_subwindow(slope = new DiffKeySlope(plugin, x, y)); - x = 10; - y += slope->get_h() + 10; + x = xs10; + y += slope->get_h() + ys10; add_subwindow(do_value = new DiffKeyDoValue(plugin, x, y)); diff --git a/cinelerra-5.1/plugins/dot/dotwindow.C b/cinelerra-5.1/plugins/dot/dotwindow.C index 2373da7f..5a4b93bb 100644 --- a/cinelerra-5.1/plugins/dot/dotwindow.C +++ b/cinelerra-5.1/plugins/dot/dotwindow.C @@ -30,10 +30,10 @@ DotWindow::DotWindow(DotMain *client) : PluginClientWindow(client, - 300, - 170, - 300, - 170, + xS(300), + yS(170), + xS(300), + yS(170), 0) { this->client = client; @@ -45,7 +45,7 @@ DotWindow::~DotWindow() void DotWindow::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); add_subwindow(new BC_Title(x, y, _("DotTV from EffectTV\n" "Copyright (C) 2001 FUKUCHI Kentarou") diff --git a/cinelerra-5.1/plugins/downsample/downsample.C b/cinelerra-5.1/plugins/downsample/downsample.C index 4ce97317..a31f8585 100644 --- a/cinelerra-5.1/plugins/downsample/downsample.C +++ b/cinelerra-5.1/plugins/downsample/downsample.C @@ -216,10 +216,10 @@ void DownSampleConfig::interpolate(DownSampleConfig &prev, DownSampleWindow::DownSampleWindow(DownSampleMain *plugin) : PluginClientWindow(plugin, - 230, - 380, - 230, - 380, + xS(230), + yS(380), + xS(230), + yS(380), 0) { this->plugin = plugin; @@ -231,68 +231,70 @@ DownSampleWindow::~DownSampleWindow() void DownSampleWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10); + int ys10 = yS(10), ys30 = yS(30); + int x = xs10, y = ys10; add_subwindow(new BC_Title(x, y, _("Horizontal"))); - y += 30; + y += ys30; add_subwindow(h = new DownSampleSize(plugin, x, y, &plugin->config.horizontal, 1, 100)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Horizontal offset"))); - y += 30; + y += ys30; add_subwindow(h_x = new DownSampleSize(plugin, x, y, &plugin->config.horizontal_x, 0, 100)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Vertical"))); - y += 30; + y += ys30; add_subwindow(v = new DownSampleSize(plugin, x, y, &plugin->config.vertical, 1, 100)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Vertical offset"))); - y += 30; + y += ys30; add_subwindow(v_y = new DownSampleSize(plugin, x, y, &plugin->config.vertical_y, 0, 100)); - y += 30; + y += ys30; add_subwindow(r = new DownSampleToggle(plugin, x, y, &plugin->config.r, _("Red"))); - y += 30; + y += ys30; add_subwindow(g = new DownSampleToggle(plugin, x, y, &plugin->config.g, _("Green"))); - y += 30; + y += ys30; add_subwindow(b = new DownSampleToggle(plugin, x, y, &plugin->config.b, _("Blue"))); - y += 30; + y += ys30; add_subwindow(a = new DownSampleToggle(plugin, x, y, &plugin->config.a, _("Alpha"))); - y += 30; + y += ys30; show_window(); flush(); @@ -338,7 +340,7 @@ DownSampleSize::DownSampleSize(DownSampleMain *plugin, int *output, int min, int max) - : BC_ISlider(x, y, 0, 200, 200, min, max, *output) + : BC_ISlider(x, y, 0, xS(200), yS(200), min, max, *output) { this->plugin = plugin; this->output = output; diff --git a/cinelerra-5.1/plugins/echo/echo.C b/cinelerra-5.1/plugins/echo/echo.C index ca23bbcf..672272c2 100644 --- a/cinelerra-5.1/plugins/echo/echo.C +++ b/cinelerra-5.1/plugins/echo/echo.C @@ -76,7 +76,7 @@ void EchoConfig::interpolate(EchoConfig &prev, EchoConfig &next, EchoWindow::EchoWindow(Echo *plugin) - : PluginClientWindow(plugin, 250, 100, 250, 100, 0) + : PluginClientWindow(plugin, xS(250), yS(100), xS(250), yS(100), 0) { this->plugin = plugin; } @@ -141,16 +141,18 @@ int EchoOffset::handle_event() void EchoWindow::create_objects() { - int x = 170, y = 10; - add_subwindow(level_title=new EchoTitle(5, y + 10, _("Level: "), + int xs5 = xS(5), xs35 = xS(35); + int ys10 = yS(10), ys25 = yS(25); + int x = xS(170), y = yS(10); + add_subwindow(level_title=new EchoTitle(xs5, y + ys10, _("Level: "), plugin->db.fromdb(plugin->config.level))); - add_subwindow(level = new EchoLevel(this, x, y)); y += 25; - add_subwindow(atten_title=new EchoTitle(5, y + 10, _("Atten: "), + add_subwindow(level = new EchoLevel(this, x, y)); y += ys25; + add_subwindow(atten_title=new EchoTitle(xs5, y + ys10, _("Atten: "), plugin->db.fromdb(plugin->config.atten))); - add_subwindow(atten = new EchoAtten(this, x + 35, y)); y += 25; - add_subwindow(offset_title=new EchoTitle(5, y + 10, _("Offset: "), + add_subwindow(atten = new EchoAtten(this, x + xs35, y)); y += ys25; + add_subwindow(offset_title=new EchoTitle(xs5, y + ys10, _("Offset: "), (int)plugin->config.offset)); - add_subwindow(offset = new EchoOffset(this, x, y)); y += 25; + add_subwindow(offset = new EchoOffset(this, x, y)); y += ys25; show_window(); } diff --git a/cinelerra-5.1/plugins/echocancel/echocancel.C b/cinelerra-5.1/plugins/echocancel/echocancel.C index 379fbe4b..b1c4dcb8 100644 --- a/cinelerra-5.1/plugins/echocancel/echocancel.C +++ b/cinelerra-5.1/plugins/echocancel/echocancel.C @@ -133,7 +133,7 @@ int EchoCancelLevel::handle_event() EchoCancelMode::EchoCancelMode(EchoCancel *plugin, int x, int y) - : BC_PopupMenu(x, y, 120, to_text(plugin->config.mode)) + : BC_PopupMenu(x, y, xS(120), to_text(plugin->config.mode)) { this->plugin = plugin; } @@ -195,7 +195,7 @@ int EchoCancelHistory::handle_event() EchoCancelWindowSize::EchoCancelWindowSize(EchoCancel *plugin, int x, int y, const char *text) - : BC_PopupMenu(x, y, 80, text) + : BC_PopupMenu(x, y, xS(120), text) { this->plugin = plugin; } @@ -410,7 +410,7 @@ void EchoCancelCanvas::draw_overlay() EchoCancelWindow::EchoCancelWindow(EchoCancel *plugin) - : PluginClientWindow(plugin, plugin->w, plugin->h, 320, 320, 1) + : PluginClientWindow(plugin, plugin->w, plugin->h, xS(680), yS(480), 1) { this->plugin = plugin; probe_x = probe_y = -1; @@ -626,8 +626,8 @@ EchoCancel::EchoCancel(PluginServer *server) { reset(); timer = new Timer; - w = 640; - h = 480; + w = xS(640); + h = yS(480); } EchoCancel::~EchoCancel() diff --git a/cinelerra-5.1/plugins/edge/edgewindow.C b/cinelerra-5.1/plugins/edge/edgewindow.C index 926ec53c..0a143a3a 100644 --- a/cinelerra-5.1/plugins/edge/edgewindow.C +++ b/cinelerra-5.1/plugins/edge/edgewindow.C @@ -27,10 +27,10 @@ EdgeWindow::EdgeWindow(Edge *plugin) : PluginClientWindow(plugin, - 320, - 120, - 320, - 120, + xS(320), + yS(120), + xS(320), + yS(120), 0) { this->plugin = plugin; @@ -42,7 +42,7 @@ EdgeWindow::~EdgeWindow() void EdgeWindow::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); int margin = plugin->get_theme()->widget_border; BC_Title *title; diff --git a/cinelerra-5.1/plugins/fieldframe/fieldframe.C b/cinelerra-5.1/plugins/fieldframe/fieldframe.C index 9d0dbb27..58449ff5 100644 --- a/cinelerra-5.1/plugins/fieldframe/fieldframe.C +++ b/cinelerra-5.1/plugins/fieldframe/fieldframe.C @@ -165,10 +165,10 @@ int FieldFrameConfig::equivalent(FieldFrameConfig &src) FieldFrameWindow::FieldFrameWindow(FieldFrame *plugin) : PluginClientWindow(plugin, - 230, - 100, - 230, - 100, + xS(230), + yS(100), + xS(230), + yS(100), 0) { this->plugin = plugin; @@ -176,13 +176,15 @@ FieldFrameWindow::FieldFrameWindow(FieldFrame *plugin) void FieldFrameWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10); + int ys10 = yS(10), ys30 = yS(30); + int x = xs10, y = ys10; add_subwindow(top = new FieldFrameTop(plugin, this, x, y)); - y += 30; + y += ys30; add_subwindow(bottom = new FieldFrameBottom(plugin, this, x, y)); -// y += 30; +// y += ys30; // add_subwindow(first = new FieldFrameFirst(plugin, this, x, y)); -// y += 30; +// y += ys30; // add_subwindow(second = new FieldFrameSecond(plugin, this, x, y)); show_window(); diff --git a/cinelerra-5.1/plugins/findobj/findobjwindow.C b/cinelerra-5.1/plugins/findobj/findobjwindow.C index e1ed25c5..f9302a7c 100644 --- a/cinelerra-5.1/plugins/findobj/findobjwindow.C +++ b/cinelerra-5.1/plugins/findobj/findobjwindow.C @@ -34,7 +34,7 @@ FindObjWindow::FindObjWindow(FindObjMain *plugin) - : PluginClientWindow(plugin, 500, 700, 500, 700, 0) + : PluginClientWindow(plugin, xS(500), yS(700), xS(500), yS(700), 0) { this->plugin = plugin; } @@ -45,39 +45,41 @@ FindObjWindow::~FindObjWindow() void FindObjWindow::create_objects() { - int x = 10, y = 10, x1 = x, x2 = get_w()*1/3, x3 = get_w()*2/3; + int xs10 = xS(10), xs15 = xS(15), xs100 = xS(100), xs200 = xS(200); + int ys5 = yS(5), ys10 = yS(10), ys15 = yS(15), ys40 = yS(40); + int x = xs10, y = ys10, x1 = x, x2 = get_w()*1/3, x3 = get_w()*2/3; plugin->load_configuration(); BC_Title *title; add_subwindow(title = new BC_Title(x1, y, _("Mode:"))); add_subwindow(mode = new FindObjMode(plugin, this, - x1 + 100, y)); - add_subwindow(reset = new FindObjReset(plugin, this, get_w()-15, y)); + x1 + xs100, y)); + add_subwindow(reset = new FindObjReset(plugin, this, get_w()-xs15, y)); mode->create_objects(); - y += mode->get_h() + 10; + y += mode->get_h() + ys10; int y0 = y; add_subwindow(title = new BC_Title(x1, y, _("Algorithm:"))); add_subwindow(algorithm = new FindObjAlgorithm(plugin, this, - x1 + 100, y)); + x1 + xs100, y)); algorithm->create_objects(); y += algorithm->get_h() + plugin->get_theme()->widget_border; add_subwindow(use_flann = new FindObjUseFlann(plugin, this, x, y)); - y += use_flann->get_h() + 10; + y += use_flann->get_h() + ys10; int y1 = y; y = y0; add_subwindow(replace_object = new FindObjReplace(plugin, this,x3, y)); - y += replace_object->get_h() + 10; + y += replace_object->get_h() + ys10; add_subwindow(draw_match = new FindObjDrawMatch(plugin, this, x3, y)); - y += draw_match->get_h() + 10; + y += draw_match->get_h() + ys10; add_subwindow(aspect = new FindObjAspect(plugin, this, x3, y)); - y += aspect->get_h() + 10; + y += aspect->get_h() + ys10; add_subwindow(scale = new FindObjScale(plugin, this, x3, y)); - y += scale->get_h() + 10; + y += scale->get_h() + ys10; add_subwindow(rotate = new FindObjRotate(plugin, this, x3, y)); - y += rotate->get_h() + 10; + y += rotate->get_h() + ys10; add_subwindow(translate = new FindObjTranslate(plugin, this, x3, y)); - int x0 = x + 200; y = y1 + 10; + int x0 = x + xs200; y = y1 + ys10; add_subwindow(title = new BC_Title(x, y, _("Output/scene layer:"))); scene_layer = new FindObjLayer(plugin, this, x0, y, &plugin->config.scene_layer); @@ -94,14 +96,14 @@ void FindObjWindow::create_objects() replace_layer = new FindObjLayer(plugin, this, x0, y, &plugin->config.replace_layer); replace_layer->create_objects(); - y += replace_layer->get_h() + plugin->get_theme()->widget_border + 10; + y += replace_layer->get_h() + plugin->get_theme()->widget_border + ys10; - y += 10; - add_subwindow(title = new BC_Title(x+15, y, _("Units: 0 to 100 percent"))); + y += ys10; + add_subwindow(title = new BC_Title(x+xs15, y, _("Units: 0 to 100 percent"))); y += title->get_h(); y1 = y; - add_subwindow(title = new BC_Title(x1, y + 10, _("Scene X:"))); + add_subwindow(title = new BC_Title(x1, y + ys10, _("Scene X:"))); Track *track = plugin->server->plugin->track; int trk_w = track->track_w, trk_h = track->track_h; float drag_w = trk_w * plugin->config.scene_w / 100.; @@ -109,173 +111,173 @@ void FindObjWindow::create_objects() float ctr_x = trk_w * plugin->config.scene_x / 100.; float ctr_y = trk_h * plugin->config.scene_y / 100.; float drag_x = ctr_x - drag_w/2, drag_y = ctr_y - drag_h/2; - drag_scene = new FindObjDragScene(plugin, this, x1+title->get_w()+10, y+5, + drag_scene = new FindObjDragScene(plugin, this, x1+title->get_w()+xs10, y+ys5, drag_x, drag_y, drag_w, drag_h); add_subwindow(drag_scene); drag_scene->create_objects(); - y += title->get_h() + 15; + y += title->get_h() + ys15; add_subwindow(scene_x = new FindObjScanFloat(plugin, this, x1, y, &plugin->config.scene_x)); add_subwindow(scene_x_text = new FindObjScanFloatText(plugin, this, - x1 + scene_x->get_w() + 10, y + 10, &plugin->config.scene_x)); + x1 + scene_x->get_w() + xs10, y + ys10, &plugin->config.scene_x)); scene_x->center_text = scene_x_text; scene_x_text->center = scene_x; - y += 40; - add_subwindow(title = new BC_Title(x1, y + 10, _("Scene Y:"))); - y += title->get_h() + 15; + y += ys40; + add_subwindow(title = new BC_Title(x1, y + ys10, _("Scene Y:"))); + y += title->get_h() + ys15; add_subwindow(scene_y = new FindObjScanFloat(plugin, this, x1, y, &plugin->config.scene_y)); add_subwindow(scene_y_text = new FindObjScanFloatText(plugin, this, - x1 + scene_y->get_w() + 10, y + 10, &plugin->config.scene_y)); + x1 + scene_y->get_w() + xs10, y + ys10, &plugin->config.scene_y)); scene_y->center_text = scene_y_text; scene_y_text->center = scene_y; - y += 40; - add_subwindow(new BC_Title(x1, y + 10, _("Scene W:"))); - y += title->get_h() + 15; + y += ys40; + add_subwindow(new BC_Title(x1, y + ys10, _("Scene W:"))); + y += title->get_h() + ys15; add_subwindow(scene_w = new FindObjScanFloat(plugin, this, x1, y, &plugin->config.scene_w)); add_subwindow(scene_w_text = new FindObjScanFloatText(plugin, this, - x1 + scene_w->get_w() + 10, y + 10, &plugin->config.scene_w)); + x1 + scene_w->get_w() + xs10, y + ys10, &plugin->config.scene_w)); scene_w->center_text = scene_w_text; scene_w_text->center = scene_w; - y += 40; - add_subwindow(title = new BC_Title(x1, y + 10, _("Scene H:"))); - y += title->get_h() + 15; + y += ys40; + add_subwindow(title = new BC_Title(x1, y + ys10, _("Scene H:"))); + y += title->get_h() + ys15; add_subwindow(scene_h = new FindObjScanFloat(plugin, this, x1, y, &plugin->config.scene_h)); add_subwindow(scene_h_text = new FindObjScanFloatText(plugin, this, - x1 + scene_h->get_w() + 10, y + 10, + x1 + scene_h->get_w() + xs10, y + ys10, &plugin->config.scene_h)); scene_h->center_text = scene_h_text; scene_h_text->center = scene_h; y = y1; - add_subwindow(title = new BC_Title(x2, y + 10, _("Object X:"))); + add_subwindow(title = new BC_Title(x2, y + ys10, _("Object X:"))); drag_w = trk_w * plugin->config.object_w / 100.; drag_h = trk_h * plugin->config.object_h / 100.; ctr_x = trk_w * plugin->config.object_x / 100., ctr_y = trk_h * plugin->config.object_y / 100.; drag_x = ctr_x - drag_w/2; drag_y = ctr_y - drag_h/2; - drag_object = new FindObjDragObject(plugin, this, x2+title->get_w()+10, y+5, + drag_object = new FindObjDragObject(plugin, this, x2+title->get_w()+xs10, y+ys5, drag_x, drag_y, drag_w, drag_h); add_subwindow(drag_object); drag_object->create_objects(); - y += title->get_h() + 15; + y += title->get_h() + ys15; add_subwindow(object_x = new FindObjScanFloat(plugin, this, x2, y, &plugin->config.object_x)); add_subwindow(object_x_text = new FindObjScanFloatText(plugin, this, - x2 + object_x->get_w() + 10, y + 10, &plugin->config.object_x)); + x2 + object_x->get_w() + xs10, y + ys10, &plugin->config.object_x)); object_x->center_text = object_x_text; object_x_text->center = object_x; - y += 40; - add_subwindow(title = new BC_Title(x2, y + 10, _("Object Y:"))); - y += title->get_h() + 15; + y += ys40; + add_subwindow(title = new BC_Title(x2, y + ys10, _("Object Y:"))); + y += title->get_h() + ys15; add_subwindow(object_y = new FindObjScanFloat(plugin, this, x2, y, &plugin->config.object_y)); add_subwindow(object_y_text = new FindObjScanFloatText(plugin, this, - x2 + object_y->get_w() + 10, y + 10, &plugin->config.object_y)); + x2 + object_y->get_w() + xs10, y + ys10, &plugin->config.object_y)); object_y->center_text = object_y_text; object_y_text->center = object_y; - y += 40; - add_subwindow(new BC_Title(x2, y + 10, _("Object W:"))); - y += title->get_h() + 15; + y += ys40; + add_subwindow(new BC_Title(x2, y + ys10, _("Object W:"))); + y += title->get_h() + ys15; add_subwindow(object_w = new FindObjScanFloat(plugin, this, x2, y, &plugin->config.object_w)); add_subwindow(object_w_text = new FindObjScanFloatText(plugin, this, - x2 + object_w->get_w() + 10, y + 10, &plugin->config.object_w)); + x2 + object_w->get_w() + xs10, y + ys10, &plugin->config.object_w)); object_w->center_text = object_w_text; object_w_text->center = object_w; - y += 40; - add_subwindow(title = new BC_Title(x2, y + 10, _("Object H:"))); - y += title->get_h() + 15; + y += ys40; + add_subwindow(title = new BC_Title(x2, y + ys10, _("Object H:"))); + y += title->get_h() + ys15; add_subwindow(object_h = new FindObjScanFloat(plugin, this, x2, y, &plugin->config.object_h)); add_subwindow(object_h_text = new FindObjScanFloatText(plugin, this, - x2 + object_h->get_w() + 10, y + 10, + x2 + object_h->get_w() + xs10, y + ys10, &plugin->config.object_h)); object_h->center_text = object_h_text; object_h_text->center = object_h; y = y1; - add_subwindow(title = new BC_Title(x3, y + 10, _("Replace X:"))); + add_subwindow(title = new BC_Title(x3, y + ys10, _("Replace X:"))); drag_w = trk_w * plugin->config.replace_w / 100.; drag_h = trk_h * plugin->config.replace_h / 100.; ctr_x = trk_w * plugin->config.replace_x / 100., ctr_y = trk_h * plugin->config.replace_y / 100.; drag_x = ctr_x - drag_w/2; drag_y = ctr_y - drag_h/2; - drag_replace = new FindObjDragReplace(plugin, this, x3+title->get_w()+10, y+5, + drag_replace = new FindObjDragReplace(plugin, this, x3+title->get_w()+xs10, y+ys5, drag_x, drag_y, drag_w, drag_h); add_subwindow(drag_replace); drag_replace->create_objects(); - y += title->get_h() + 15; + y += title->get_h() + ys15; add_subwindow(replace_x = new FindObjScanFloat(plugin, this, x3, y, &plugin->config.replace_x)); add_subwindow(replace_x_text = new FindObjScanFloatText(plugin, this, - x3 + replace_x->get_w() + 10, y + 10, &plugin->config.replace_x)); + x3 + replace_x->get_w() + xs10, y + ys10, &plugin->config.replace_x)); replace_x->center_text = replace_x_text; replace_x_text->center = replace_x; - y += 40; - add_subwindow(title = new BC_Title(x3, y + 10, _("Replace Y:"))); - y += title->get_h() + 15; + y += ys40; + add_subwindow(title = new BC_Title(x3, y + ys10, _("Replace Y:"))); + y += title->get_h() + ys15; add_subwindow(replace_y = new FindObjScanFloat(plugin, this, x3, y, &plugin->config.replace_y)); add_subwindow(replace_y_text = new FindObjScanFloatText(plugin, this, - x3 + replace_y->get_w() + 10, y + 10, &plugin->config.replace_y)); + x3 + replace_y->get_w() + xs10, y + ys10, &plugin->config.replace_y)); replace_y->center_text = replace_y_text; replace_y_text->center = replace_y; - y += 40; - add_subwindow(new BC_Title(x3, y + 10, _("Replace W:"))); - y += title->get_h() + 15; + y += ys40; + add_subwindow(new BC_Title(x3, y + ys10, _("Replace W:"))); + y += title->get_h() + ys15; add_subwindow(replace_w = new FindObjScanFloat(plugin, this, x3, y, &plugin->config.replace_w)); add_subwindow(replace_w_text = new FindObjScanFloatText(plugin, this, - x3 + replace_w->get_w() + 10, y + 10, &plugin->config.replace_w)); + x3 + replace_w->get_w() + xs10, y + ys10, &plugin->config.replace_w)); replace_w->center_text = replace_w_text; replace_w_text->center = replace_w; - y += 40; - add_subwindow(title = new BC_Title(x3, y + 10, _("Replace H:"))); - y += title->get_h() + 15; + y += ys40; + add_subwindow(title = new BC_Title(x3, y + ys10, _("Replace H:"))); + y += title->get_h() + ys15; add_subwindow(replace_h = new FindObjScanFloat(plugin, this, x3, y, &plugin->config.replace_h)); add_subwindow(replace_h_text = new FindObjScanFloatText(plugin, this, - x3 + replace_h->get_w() + 10, y + 10, + x3 + replace_h->get_w() + xs10, y + ys10, &plugin->config.replace_h)); replace_h->center_text = replace_h_text; replace_h_text->center = replace_h; - y += 40; int y2 = y; - add_subwindow(title = new BC_Title(x3, y + 10, _("Replace DX:"))); - y += title->get_h() + 15; + y += ys40; int y2 = y; + add_subwindow(title = new BC_Title(x3, y + ys10, _("Replace DX:"))); + y += title->get_h() + ys15; add_subwindow(replace_dx = new FindObjScanFloat(plugin, this, x3, y, &plugin->config.replace_dx, -100.f, 100.f)); add_subwindow(replace_dx_text = new FindObjScanFloatText(plugin, this, - x3 + replace_dx->get_w() + 10, y + 10, &plugin->config.replace_dx)); + x3 + replace_dx->get_w() + xs10, y + ys10, &plugin->config.replace_dx)); replace_dx->center_text = replace_dx_text; replace_dx_text->center = replace_dx; - y += 40; - add_subwindow(title = new BC_Title(x3, y + 10, _("Replace DY:"))); - y += title->get_h() + 15; + y += ys40; + add_subwindow(title = new BC_Title(x3, y + ys10, _("Replace DY:"))); + y += title->get_h() + ys15; add_subwindow(replace_dy = new FindObjScanFloat(plugin, this, x3, y, &plugin->config.replace_dy, -100.f, 100.f)); add_subwindow(replace_dy_text = new FindObjScanFloatText(plugin, this, - x3 + replace_dy->get_w() + 10, y + 10, &plugin->config.replace_dy)); + x3 + replace_dy->get_w() + xs10, y + ys10, &plugin->config.replace_dy)); replace_dy->center_text = replace_dy_text; replace_dy_text->center = replace_dy; - y = y2 + 15; + y = y2 + ys15; add_subwindow(draw_keypoints = new FindObjDrawKeypoints(plugin, this, x, y)); y += draw_keypoints->get_h() + plugin->get_theme()->widget_border; add_subwindow(draw_scene_border = new FindObjDrawSceneBorder(plugin, this, x, y)); @@ -285,7 +287,7 @@ void FindObjWindow::create_objects() add_subwindow(draw_replace_border = new FindObjDrawReplaceBorder(plugin, this, x, y)); y += draw_object_border->get_h() + plugin->get_theme()->widget_border; - add_subwindow(title = new BC_Title(x, y + 10, _("Object blend amount:"))); + add_subwindow(title = new BC_Title(x, y + xs10, _("Object blend amount:"))); add_subwindow(blend = new FindObjBlend(plugin, x + title->get_w() + plugin->get_theme()->widget_border, y, &plugin->config.blend)); @@ -417,7 +419,7 @@ void FindObjScanFloat::update(float v) FindObjScanFloatText::FindObjScanFloatText(FindObjMain *plugin, FindObjWindow *gui, int x, int y, float *value) - : BC_TextBox(x, y, 75, 1, *value) + : BC_TextBox(x, y, xS(75), 1, *value) { this->plugin = plugin; this->gui = gui; @@ -742,7 +744,7 @@ int FindObjAlgorithm::calculate_w(FindObjWindow *gui) #ifdef _BRISK result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(ALGORITHM_BRISK))); #endif - return result + 50; + return result + xS(50); } @@ -890,7 +892,7 @@ int FindObjMode::calculate_w(FindObjWindow *gui) int result = 0; for( int mode=MODE_NONE; modeget_text_width(MEDIUMFONT, to_text(mode))); - return result + 50; + return result + xS(50); } @@ -914,7 +916,7 @@ int FindObjLayer::calculate_w(FindObjWindow *gui) { int result = 0; result = gui->get_text_width(MEDIUMFONT, "000"); - return result + 50; + return result + xS(50); } diff --git a/cinelerra-5.1/plugins/flip/flipwindow.C b/cinelerra-5.1/plugins/flip/flipwindow.C index 2103ef60..f22ff418 100644 --- a/cinelerra-5.1/plugins/flip/flipwindow.C +++ b/cinelerra-5.1/plugins/flip/flipwindow.C @@ -30,7 +30,7 @@ FlipWindow::FlipWindow(FlipMain *client) - : PluginClientWindow(client, 250, 100, 250, 100, 0) + : PluginClientWindow(client, xS(250), yS(100), xS(250), yS(100), 0) { this->client = client; } @@ -41,13 +41,13 @@ FlipWindow::~FlipWindow() void FlipWindow::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); add_tool(flip_vertical = new FlipToggle(client, &(client->config.flip_vertical), _("Vertical"), x, y)); - y += 30; + y += yS(30); add_tool(flip_horizontal = new FlipToggle(client, &(client->config.flip_horizontal), _("Horizontal"), diff --git a/cinelerra-5.1/plugins/flowobj/flowobjwindow.C b/cinelerra-5.1/plugins/flowobj/flowobjwindow.C index eec0ab52..851f06de 100644 --- a/cinelerra-5.1/plugins/flowobj/flowobjwindow.C +++ b/cinelerra-5.1/plugins/flowobj/flowobjwindow.C @@ -26,7 +26,7 @@ #include "theme.h" FlowObjWindow::FlowObjWindow(FlowObj *plugin) - : PluginClientWindow(plugin, 320, 240, 320, 240, 0) + : PluginClientWindow(plugin, xS(320), yS(240), xS(320), yS(240), 0) { this->plugin = plugin; } @@ -37,7 +37,7 @@ FlowObjWindow::~FlowObjWindow() void FlowObjWindow::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); int margin = plugin->get_theme()->widget_border; BC_Title *title; diff --git a/cinelerra-5.1/plugins/framefield/framefield.C b/cinelerra-5.1/plugins/framefield/framefield.C index 314ab2b2..da36db3f 100644 --- a/cinelerra-5.1/plugins/framefield/framefield.C +++ b/cinelerra-5.1/plugins/framefield/framefield.C @@ -187,10 +187,10 @@ int FrameFieldConfig::equivalent(FrameFieldConfig &src) FrameFieldWindow::FrameFieldWindow(FrameField *plugin) : PluginClientWindow(plugin, - 210, - 160, - 200, - 160, + xS(210), + yS(160), + xS(200), + yS(160), 0) { this->plugin = plugin; @@ -198,11 +198,13 @@ FrameFieldWindow::FrameFieldWindow(FrameField *plugin) void FrameFieldWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10); + int ys5 = yS(5), ys10 = yS(10); + int x = xs10, y = ys10; add_subwindow(top = new FrameFieldTop(plugin, this, x, y)); - y += top->get_h() + 5; + y += top->get_h() + ys5; add_subwindow(bottom = new FrameFieldBottom(plugin, this, x, y)); - y += bottom->get_h() + 5; + y += bottom->get_h() + ys5; show_window(); flush(); } diff --git a/cinelerra-5.1/plugins/freeverb/freeverb.C b/cinelerra-5.1/plugins/freeverb/freeverb.C index 7527f487..ea365f20 100644 --- a/cinelerra-5.1/plugins/freeverb/freeverb.C +++ b/cinelerra-5.1/plugins/freeverb/freeverb.C @@ -294,10 +294,10 @@ int FreeverbMode::handle_event() FreeverbWindow::FreeverbWindow(FreeverbEffect *plugin) : PluginClientWindow(plugin, - 180, - 250, - 180, - 250, + xS(180), + yS(250), + xS(180), + yS(250), 0) { this->plugin = plugin; @@ -305,7 +305,9 @@ FreeverbWindow::FreeverbWindow(FreeverbEffect *plugin) void FreeverbWindow::create_objects() { - int x1 = 10, x2 = 100, x3 = 135, y1 = 10, y2 = 20, margin = 30; + int xs10 = xS(10), xs100 = xS(100), xs135 = xS(135); + int ys10 = yS(10), ys20 = yS(20), ys30 = yS(30); + int x1 = xs10, x2 = xs100, x3 = xs135, y1 = ys10, y2 = ys20, margin = ys30; add_subwindow(new BC_Title(x1, y2, _("Gain:"))); add_subwindow(gain = new FreeverbGain(plugin, x3, y1)); diff --git a/cinelerra-5.1/plugins/freezeframe/freezeframe.C b/cinelerra-5.1/plugins/freezeframe/freezeframe.C index 56f46d1f..4a364306 100644 --- a/cinelerra-5.1/plugins/freezeframe/freezeframe.C +++ b/cinelerra-5.1/plugins/freezeframe/freezeframe.C @@ -75,7 +75,7 @@ void FreezeFrameConfig::interpolate(FreezeFrameConfig &prev, FreezeFrameWindow::FreezeFrameWindow(FreezeFrameMain *client) - : PluginClientWindow(client, 260, 100, 260, 100, 0) + : PluginClientWindow(client, xS(260), yS(100), xS(260), yS(100), 0) { this->client = client; } @@ -86,7 +86,7 @@ FreezeFrameWindow::~FreezeFrameWindow() void FreezeFrameWindow::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); add_tool(enabled = new FreezeFrameToggle(client, &client->config.enabled, x, @@ -94,7 +94,7 @@ void FreezeFrameWindow::create_objects() _("Enabled"))); // Try using extra effect for the line double since it doesn't // change the overhead. -// y += 30; +// y += yS(30); // add_tool(line_double = new FreezeFrameToggle(client, // &client->config.line_double, // x, diff --git a/cinelerra-5.1/plugins/gaborobj/gaborobjwindow.C b/cinelerra-5.1/plugins/gaborobj/gaborobjwindow.C index 4f8ef76e..ea8b2cef 100644 --- a/cinelerra-5.1/plugins/gaborobj/gaborobjwindow.C +++ b/cinelerra-5.1/plugins/gaborobj/gaborobjwindow.C @@ -26,7 +26,7 @@ #include "theme.h" GaborObjWindow::GaborObjWindow(GaborObj *plugin) - : PluginClientWindow(plugin, 320, 240, 320, 240, 0) + : PluginClientWindow(plugin, xS(320), yS(240), xS(320), yS(240), 0) { this->plugin = plugin; } @@ -37,7 +37,7 @@ GaborObjWindow::~GaborObjWindow() void GaborObjWindow::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); BC_Title *title = new BC_Title(x, y, _("GaborObj")); add_subwindow(title); show_window(1); diff --git a/cinelerra-5.1/plugins/gain/gainwindow.C b/cinelerra-5.1/plugins/gain/gainwindow.C index 0010c64e..c61f985a 100644 --- a/cinelerra-5.1/plugins/gain/gainwindow.C +++ b/cinelerra-5.1/plugins/gain/gainwindow.C @@ -35,10 +35,10 @@ GainWindow::GainWindow(Gain *gain) : PluginClientWindow(gain, - 230, - 60, - 230, - 60, + xS(230), + yS(60), + xS(230), + yS(60), 0) { this->gain = gain; @@ -50,9 +50,11 @@ GainWindow::~GainWindow() void GainWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10); + int ys10 = yS(10), ys20 = yS(20); + int x = xs10, y = ys10; add_tool(new BC_Title(5, y, _("Level:"))); - y += 20; + y += ys20; add_tool(level = new GainLevel(gain, x, y)); show_window(); flush(); @@ -69,8 +71,8 @@ GainLevel::GainLevel(Gain *gain, int x, int y) : BC_FSlider(x, y, 0, - 200, - 200, + xS(200), + yS(200), INFINITYGAIN, 40, gain->config.level) diff --git a/cinelerra-5.1/plugins/gamma/gammawindow.C b/cinelerra-5.1/plugins/gamma/gammawindow.C index b00d3245..7e7322a6 100644 --- a/cinelerra-5.1/plugins/gamma/gammawindow.C +++ b/cinelerra-5.1/plugins/gamma/gammawindow.C @@ -27,10 +27,10 @@ GammaWindow::GammaWindow(GammaMain *client) : PluginClientWindow(client, - 400, - 380, - 400, - 380, + xS(400), + yS(380), + xS(400), + yS(380), 0) { this->client = client; @@ -38,56 +38,58 @@ GammaWindow::GammaWindow(GammaMain *client) void GammaWindow::create_objects() { - int x = 10, y = 10, x1 = x; + int xs10 = xS(10), xs100 = xS(100), xs110 = xS(110), xs190 = xS(190); + int ys10 = yS(10), ys180 = yS(180); + int x = xs10, y = ys10, x1 = x; add_subwindow(histogram = new BC_SubWindow(x, y, get_w() - x * 2, - get_h() - 180, + get_h() - ys180, WHITE)); - y += histogram->get_h() + 10; + y += histogram->get_h() + ys10; BC_Title *title; add_tool(title = new BC_Title(x, y, _("Maximum:"))); - x += title->get_w() + 10; + x += title->get_w() + xs10; x1 = x; // save x to align the two sliders add_tool(max_slider = new MaxSlider(client, this, x, y, - 190)); - x += max_slider->get_w() + 10; + xs190)); + x += max_slider->get_w() + xs10; add_tool(max_text = new MaxText(client, this, x, y, - 100)); - y += max_text->get_h() + 10; - x = 10; + xs100)); + y += max_text->get_h() + ys10; + x = xs10; add_tool(automatic = new GammaAuto(client, x, y)); - y += automatic->get_h() + 10; + y += automatic->get_h() + ys10; add_tool(title = new BC_Title(x, y, _("Gamma:"))); - x += title->get_w() + 10; + x += title->get_w() + xs10; x = x1; // recover x of the "MaxSlider" to align the "GammaSlider" add_tool(gamma_slider = new GammaSlider(client, this, x, y, - 190)); - x += gamma_slider->get_w() + 10; + xs190)); + x += gamma_slider->get_w() + xs10; add_tool(gamma_text = new GammaText(client, this, x, y, - 100)); - y += gamma_text->get_h() + 10; - x = 10; + xs100)); + y += gamma_text->get_h() + ys10; + x = xs10; add_tool(plot = new GammaPlot(client, x, y)); - y += plot->get_h() + 10; + y += plot->get_h() + ys10; add_tool(new GammaColorPicker(client, this, x, y)); - add_tool(reset = new GammaReset(client, this, get_w()-110, y)); + add_tool(reset = new GammaReset(client, this, get_w()-xs110, y)); show_window(); flush(); diff --git a/cinelerra-5.1/plugins/gradient/gradient.C b/cinelerra-5.1/plugins/gradient/gradient.C index 6ceb8b1b..24bbdf72 100644 --- a/cinelerra-5.1/plugins/gradient/gradient.C +++ b/cinelerra-5.1/plugins/gradient/gradient.C @@ -128,11 +128,11 @@ int GradientConfig::get_out_color() return result; } -#define COLOR_W 100 -#define COLOR_H 30 +#define COLOR_W xS(100) +#define COLOR_H yS(30) GradientWindow::GradientWindow(GradientMain *plugin) - : PluginClientWindow(plugin, 350, 290, 350, 290, 0) + : PluginClientWindow(plugin, xS(350), yS(290), xS(350), yS(290), 0) { this->plugin = plugin; angle = 0; @@ -149,8 +149,10 @@ GradientWindow::~GradientWindow() void GradientWindow::create_objects() { + int xs10 = xS(10); + int ys10 = yS(10); int margin = plugin->get_theme()->widget_border; - int x = 10, y = 10; + int x = xs10, y = ys10; BC_Title *title; add_subwindow(title = new BC_Title(x, y, _("Shape:"))); @@ -216,7 +218,7 @@ void GradientWindow::update_shape() delete center_y; center_y = 0; if( !angle ) { add_subwindow(angle_title = new BC_Title(x, y, _("Angle:"))); - add_subwindow(angle = new GradientAngle(plugin, x + angle_title->get_w() + 10, y)); + add_subwindow(angle = new GradientAngle(plugin, x + angle_title->get_w() + xS(10), y)); } } else { @@ -225,11 +227,11 @@ void GradientWindow::update_shape() if( !center_x ) { add_subwindow(center_x_title = new BC_Title(x, y, _("Center X:"))); add_subwindow(center_x = new GradientCenterX(plugin, - x + center_x_title->get_w() + 10, y)); - x += center_x_title->get_w() + 10 + center_x->get_w() + 10; + x + center_x_title->get_w() + xS(10), y)); + x += center_x_title->get_w() + xS(10) + center_x->get_w() + xS(10); add_subwindow(center_y_title = new BC_Title(x, y, _("Center Y:"))); add_subwindow(center_y = new GradientCenterY(plugin, - x + center_y_title->get_w() + 10, y)); + x + center_y_title->get_w() + xS(10), y)); } } show_window(); @@ -242,7 +244,7 @@ void GradientWindow::done_event(int result) } GradientShape::GradientShape(GradientMain *plugin, GradientWindow *gui, int x, int y) - : BC_PopupMenu(x, y, 100, to_text(plugin->config.shape), 1) + : BC_PopupMenu(x, y, xS(100), to_text(plugin->config.shape), 1) { this->plugin = plugin; this->gui = gui; @@ -275,7 +277,7 @@ int GradientShape::handle_event() GradientCenterX::GradientCenterX(GradientMain *plugin, int x, int y) - : BC_FPot(x, y, plugin->config.center_x, 0, 100) + : BC_FPot(x, y, plugin->config.center_x, 0, xS(100)) { this->plugin = plugin; } @@ -288,7 +290,7 @@ int GradientCenterX::handle_event() GradientCenterY::GradientCenterY(GradientMain *plugin, int x, int y) - : BC_FPot(x, y, plugin->config.center_y, 0, 100) + : BC_FPot(x, y, plugin->config.center_y, 0, xS(100)) { this->plugin = plugin; } @@ -316,7 +318,7 @@ int GradientAngle::handle_event() GradientRate::GradientRate(GradientMain *plugin, int x, int y) - : BC_PopupMenu(x, y, 100, to_text(plugin->config.rate), 1) + : BC_PopupMenu(x, y, xS(100), to_text(plugin->config.rate), 1) { this->plugin = plugin; } @@ -351,7 +353,7 @@ int GradientRate::handle_event() GradientInRadius::GradientInRadius(GradientMain *plugin, int x, int y) - : BC_FSlider(x, y, 0, 200, 200, + : BC_FSlider(x, y, 0, xS(200), yS(200), 0.f, 100.f, (float)plugin->config.in_radius) { this->plugin = plugin; @@ -366,7 +368,7 @@ int GradientInRadius::handle_event() GradientOutRadius::GradientOutRadius(GradientMain *plugin, int x, int y) - : BC_FSlider(x, y, 0, 200, 200, + : BC_FSlider(x, y, 0, xS(200), yS(200), 0.f, 100.f, (float)plugin->config.out_radius) { this->plugin = plugin; diff --git a/cinelerra-5.1/plugins/graphic/graphic.C b/cinelerra-5.1/plugins/graphic/graphic.C index ad2eae77..8dcdf979 100644 --- a/cinelerra-5.1/plugins/graphic/graphic.C +++ b/cinelerra-5.1/plugins/graphic/graphic.C @@ -40,10 +40,10 @@ // Canvas parameters #define MAJOR_DIVISIONS 7 #define MINOR_DIVISIONS 5 -#define LINE_W4 12 -#define LINE_W3 10 -#define LINE_W2 5 -#define LINE_W1 2 +#define LINE_W4 xS(12) +#define LINE_W3 xS(10) +#define LINE_W2 xS(5) +#define LINE_W1 xS(2) @@ -227,7 +227,7 @@ int GraphicCanvas::button_release_event() return 0; } -#define BOX_SIZE 10 +#define BOX_SIZE xS(10) int GraphicCanvas::freq_to_y(int freq, ArrayList *points, @@ -699,7 +699,7 @@ int GraphicReset::handle_event() GraphicSize::GraphicSize(GraphicGUI *window, GraphicEQ *plugin, int x, int y) - : BC_PopupMenu(x, y, 100, "4096", 1) + : BC_PopupMenu(x, y, xS(100), "4096", 1) { this->plugin = plugin; this->window = window; @@ -766,8 +766,8 @@ GraphicGUI::GraphicGUI(GraphicEQ *plugin) : PluginClientWindow(plugin, plugin->w, plugin->h, - 320, - 200, + xS(320), + yS(200), 1) { this->plugin = plugin; @@ -802,12 +802,12 @@ void GraphicGUI::create_objects() // int y1 = y; add_subwindow(freq_title = new BC_Title(x, y, _("Frequency:"))); x += freq_title->get_w() + margin; - add_subwindow(freq_text = new FreqTextBox(plugin, this, x, y, 100)); + add_subwindow(freq_text = new FreqTextBox(plugin, this, x, y, xS(100))); x += freq_text->get_w() + margin; add_subwindow(level_title = new BC_Title(x, y, _("Level:"))); x += level_title->get_w() + margin; - add_subwindow(value_text = new ValueTextBox(plugin, this, x, y, 100)); + add_subwindow(value_text = new ValueTextBox(plugin, this, x, y, xS(100))); x += value_text->get_w() + margin; add_subwindow(reset = new GraphicReset(plugin, this, x, y)); @@ -1031,8 +1031,8 @@ GraphicEQ::GraphicEQ(PluginServer *server) fft = 0; need_reconfigure = 1; active_point = -1; - w = 640; - h = 480; + w = xS(640); + h = yS(480); } GraphicEQ::~GraphicEQ() diff --git a/cinelerra-5.1/plugins/greycstoration/greycstorationwindow.C b/cinelerra-5.1/plugins/greycstoration/greycstorationwindow.C index fad9565f..e0dab620 100644 --- a/cinelerra-5.1/plugins/greycstoration/greycstorationwindow.C +++ b/cinelerra-5.1/plugins/greycstoration/greycstorationwindow.C @@ -27,7 +27,7 @@ // configuration window GreyCStorationWindow::GreyCStorationWindow(GreyCStorationMain *client) - : PluginClientWindow(client, 300, 180, 300, 180, 0) + : PluginClientWindow(client, xS(300), yS(180), xS(300), yS(180), 0) { this->client = client; } @@ -39,21 +39,23 @@ GreyCStorationWindow::~GreyCStorationWindow() // controls in window void GreyCStorationWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10); + int ys10 = yS(10), ys30 = yS(30); + int x = xs10, y = ys10; BC_Title *title; - add_subwindow(title = new BC_Title(x, y + 10, _("Amplitude:"))); + add_subwindow(title = new BC_Title(x, y + ys10, _("Amplitude:"))); add_tool(greycamp_slider = new GreyCAmpSlider(client, &(client->config.amplitude), x+title->get_w(), y)); - y += 30; - add_subwindow(title = new BC_Title(x, y + 10, _("Sharpness:"))); + y += ys30; + add_subwindow(title = new BC_Title(x, y + ys10, _("Sharpness:"))); add_tool(greycsharp_slider = new GreyCSharpSlider(client, &(client->config.sharpness), x+title->get_w(), y)); - y += 30; - add_subwindow(title = new BC_Title(x, y + 10, _("Anisotropy:"))); + y += ys30; + add_subwindow(title = new BC_Title(x, y + ys10, _("Anisotropy:"))); add_tool(greycani_slider = new GreyCAniSlider(client, &(client->config.anisotropy), x+title->get_w(), y)); - y += 30; - add_subwindow(title = new BC_Title(x, y + 10, _("Noise scale:"))); + y += ys30; + add_subwindow(title = new BC_Title(x, y + ys10, _("Noise scale:"))); add_tool(greycnoise_slider = new GreyCNoiseSlider(client, &(client->config.noise_scale), x+title->get_w(), y)); @@ -71,7 +73,7 @@ int GreyCStorationWindow::close_event() // amp slider implementation GreyCAmpSlider::GreyCAmpSlider(GreyCStorationMain *client, float *output, int x, int y) - : BC_ISlider(x, y, 0, 200, 200, 0, 255, //MAX + : BC_ISlider(x, y, 0, xS(200), yS(200), 0, 255, //MAX (int)*output, 0, 0, 0) { this->client = client; @@ -91,7 +93,7 @@ int GreyCAmpSlider::handle_event() GreyCSharpSlider::GreyCSharpSlider(GreyCStorationMain *client, float *output, int x, int y) - : BC_FSlider(x, y, 0, 200, 200, 0.0f, 1.0f, //MAX + : BC_FSlider(x, y, 0, xS(200), yS(200), 0.0f, 1.0f, //MAX (float)*output, 0, 0) { this->client = client; @@ -113,7 +115,7 @@ int GreyCSharpSlider::handle_event() GreyCAniSlider::GreyCAniSlider(GreyCStorationMain *client, float *output, int x, int y) - : BC_FSlider(x, y, 0, 200, 200, 0.0f, 1.0f, //MAX + : BC_FSlider(x, y, 0, xS(200), yS(200), 0.0f, 1.0f, //MAX (float)*output, 0, 0) { this->client = client; @@ -135,7 +137,7 @@ int GreyCAniSlider::handle_event() // noise scale GreyCNoiseSlider::GreyCNoiseSlider(GreyCStorationMain *client, float *output, int x, int y) - : BC_FSlider(x, y, 0, 200, 200, 0.0f, 10.0f, //MAX + : BC_FSlider(x, y, 0, xS(200), yS(200), 0.0f, 10.0f, //MAX (float)*output, 0, 0) { this->client = client; diff --git a/cinelerra-5.1/plugins/histeq/histeq.C b/cinelerra-5.1/plugins/histeq/histeq.C index cbe092f9..8477ed82 100644 --- a/cinelerra-5.1/plugins/histeq/histeq.C +++ b/cinelerra-5.1/plugins/histeq/histeq.C @@ -82,25 +82,27 @@ HistEqWindow::~HistEqWindow() void HistEqWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10), xs60 = xS(60); + int ys10 = yS(10); + int x = xs10, y = ys10; int cw = get_w()-2*x, ch = cw*3/4; add_subwindow(canvas = new HistEqCanvas(this, plugin, x, y, cw, ch)); - y += canvas->get_h() + 10; + y += canvas->get_h() + ys10; add_subwindow(split = new HistEqSplit(this, plugin, x, y)); - y += split->get_h() + 10; + y += split->get_h() + ys10; add_subwindow(plot = new HistEqPlot(this, plugin, x, y)); - y += plot->get_h() + 10; + y += plot->get_h() + ys10; - int x1 = x + 60; + int x1 = x + xs60; add_subwindow(new BC_Title(x, y, _("Blend:"))); add_subwindow(blend = new HistEqBlend(this, plugin, x1, y)); - y += blend->get_h() + 10; + y += blend->get_h() + ys10; add_subwindow(new BC_Title(x, y, _("Gain:"))); add_subwindow(gain = new HistEqGain(this, plugin, x1, y)); - y += gain->get_h() + 10; + y += gain->get_h() + ys10; show_window(); } @@ -237,7 +239,7 @@ int HistEqPlot::handle_event() } HistEqBlend::HistEqBlend(HistEqWindow *gui, HistEqMain *plugin, int x, int y) - : BC_FSlider(x, y, 0, 150, 200, 0, 1.0, plugin->config.blend, 0) + : BC_FSlider(x, y, 0, xS(150), yS(200), 0, xS(1.0), plugin->config.blend, 0) { this->gui = gui; this->plugin = plugin; @@ -256,7 +258,7 @@ int HistEqBlend::handle_event() HistEqGain::HistEqGain(HistEqWindow *gui, HistEqMain *plugin, int x, int y) - : BC_FSlider(x, y, 0, 150, 200, 0, 1.0, plugin->config.gain, 0) + : BC_FSlider(x, y, 0, xS(150), yS(200), 0, xS(1.0), plugin->config.gain, 0) { this->gui = gui; this->plugin = plugin; @@ -277,7 +279,7 @@ int HistEqGain::handle_event() HistEqMain::HistEqMain(PluginServer *server) : PluginVClient(server) { - w = 300; h = 375; + w = xS(300); h = yS(375); engine = 0; sz = 0; binsz = bsz = 0; bins = 0; diff --git a/cinelerra-5.1/plugins/histogram/histogramwindow.C b/cinelerra-5.1/plugins/histogram/histogramwindow.C index 9529b6e1..3a2e6cf2 100644 --- a/cinelerra-5.1/plugins/histogram/histogramwindow.C +++ b/cinelerra-5.1/plugins/histogram/histogramwindow.C @@ -38,8 +38,8 @@ HistogramWindow::HistogramWindow(HistogramMain *plugin) : PluginClientWindow(plugin, plugin->w, plugin->h, - 440, - 500, + xS(440), + yS(500), 1) { this->plugin = plugin; @@ -106,7 +106,7 @@ void HistogramWindow::create_objects() y += canvas_title2->get_h() + margin; x = x1; - canvas_h = get_h() - y - 210; + canvas_h = get_h() - y - yS(210); add_subwindow(low_input_carrot = new HistogramCarrot(plugin, @@ -182,7 +182,7 @@ void HistogramWindow::create_objects() x = x1; add_subwindow(output = new HistogramSlider(plugin, this, - canvas->get_x(), y, canvas->get_w(), 20, 0)); + canvas->get_x(), y, canvas->get_w(), yS(20), 0)); output->update(); // Output border @@ -216,7 +216,7 @@ void HistogramWindow::create_objects() add_subwindow(automatic = new HistogramAuto(plugin, x, y)); //int y1 = y; - x = 200; + x = xS(200); add_subwindow(threshold_title = new BC_Title(x, y, _("Threshold:"))); x += threshold_title->get_w() + margin; threshold = new HistogramText(plugin, this, x, y); @@ -230,7 +230,7 @@ void HistogramWindow::create_objects() y += automatic->get_h() + margin; add_subwindow(plot = new HistogramPlot(plugin, x, y)); - y += plot->get_h() + 5; + y += plot->get_h() + yS(5); add_subwindow(split = new HistogramSplit(plugin, x, y)); update(1, 1, 1, 1); @@ -973,7 +973,7 @@ int HistogramMode::handle_event() HistogramText::HistogramText(HistogramMain *plugin, HistogramWindow *gui, int x, int y, float hist_min, float hist_max) - : BC_TumbleTextBox(gui, 0.0, hist_min, hist_max, x, y, 70) + : BC_TumbleTextBox(gui, 0.0, hist_min, hist_max, x, y, xS(70)) { this->plugin = plugin; this->gui = gui; diff --git a/cinelerra-5.1/plugins/histogram_bezier/bistogramwindow.C b/cinelerra-5.1/plugins/histogram_bezier/bistogramwindow.C index 8d23ff4a..fd5429cd 100644 --- a/cinelerra-5.1/plugins/histogram_bezier/bistogramwindow.C +++ b/cinelerra-5.1/plugins/histogram_bezier/bistogramwindow.C @@ -32,7 +32,7 @@ #include HistogramWindow::HistogramWindow(HistogramMain *plugin) - : PluginClientWindow(plugin, 440, 480, 440, 480, 0) + : PluginClientWindow(plugin, xS(440), yS(480), xS(440), yS(480), 0) { this->plugin = plugin; max_picon = 0; @@ -56,7 +56,9 @@ static VFramePng min_picon_image(min_picon_png); void HistogramWindow::create_objects() { - int x = 10, y = 10, x1 = 10; + int xs10 = xS(10), xs15 = xS(15), xs20 = xS(20), xs80 = xS(80), xs100 = xS(100), xs120 = xS(120), xs150 = xS(150); + int ys6 = yS(6), ys10 = yS(10), ys20 = yS(20), ys30 = yS(30), ys40 = yS(40), ys170 = yS(170); + int x = xs10, y = ys10, x1 = xs10; BC_Title *title = 0; max_picon = create_pixmap(&max_picon_image); @@ -64,40 +66,40 @@ void HistogramWindow::create_objects() min_picon = create_pixmap(&min_picon_image); add_subwindow(mode_v = new HistogramMode(plugin, x, y, HISTOGRAM_VALUE, _("Value"))); - x += 80; + x += xs80; add_subwindow(mode_r = new HistogramMode(plugin, x, y, HISTOGRAM_RED, _("Red"))); - x += 80; + x += xs80; add_subwindow(mode_g = new HistogramMode(plugin, x, y, HISTOGRAM_GREEN, _("Green"))); - x += 80; + x += xs80; add_subwindow(mode_b = new HistogramMode(plugin, x, y, HISTOGRAM_BLUE, _("Blue"))); -// x += 80; +// x += xs80; // add_subwindow(mode_a = new HistogramMode(plugin, x, y, // HISTOGRAM_ALPHA, _("Alpha"))); - x = get_w() - HistogramClear::calculate_w(this, _("Clear")) - 15; + x = get_w() - HistogramClear::calculate_w(this, _("Clear")) - xs15; add_subwindow(clear = new HistogramClear(plugin, x, y, _("Clear"))); x = x1; - y += 30; + y += ys30; add_subwindow(title = new BC_Title(x, y, _("Input X:"))); - x += title->get_w() + 10; + x += title->get_w() + xs10; input_x = new HistogramInputText(plugin, this, x, y, 1); input_x->create_objects(); - x += input_x->get_w() + 10; + x += input_x->get_w() + xs10; add_subwindow(title = new BC_Title(x, y, _("Input Y:"))); - x += title->get_w() + 10; + x += title->get_w() + xs10; input_y = new HistogramInputText(plugin, this, x, y, 0); input_y->create_objects(); - y += 30; + y += ys30; x = x1; canvas_w = get_w() - x - x; - canvas_h = get_h() - y - 170; + canvas_h = get_h() - y - ys170; title1_x = x; title2_x = x + (int)(canvas_w * -HIST_MIN_INPUT / FLOAT_RANGE); title3_x = x + (int)(canvas_w * (1.0 - HIST_MIN_INPUT) / FLOAT_RANGE); @@ -113,45 +115,45 @@ void HistogramWindow::create_objects() add_subwindow(new BC_Title(title3_x - get_text_width(MEDIUMFONT, "100"), y, "100%")); add_subwindow(new BC_Title(title4_x - get_text_width(MEDIUMFONT, "110"), y, "110%")); - y += 20; + y += ys20; add_subwindow(title = new BC_Title(x, y, _("Output min:"))); - x += title->get_w() + 10; + x += title->get_w() + xs10; output_min = new HistogramOutputText(plugin, this, x, y, &plugin->config.output_min[plugin->mode]); output_min->create_objects(); - x += output_min->get_w() + 10; + x += output_min->get_w() + xs10; add_subwindow(new BC_Title(x, y, _("Output Max:"))); - x += title->get_w() + 10; + x += title->get_w() + xs10; output_max = new HistogramOutputText(plugin, this, x, y, &plugin->config.output_max[plugin->mode]); output_max->create_objects(); x = x1; - y += 30; + y += ys30; add_subwindow(output = new HistogramSlider(plugin, this, - x, y, get_w() - 20, 30, 0)); + x, y, get_w() - xs20, ys30, 0)); output->update(); - y += 40; + y += ys40; add_subwindow(automatic = new HistogramAuto(plugin, x, y)); - x += 120; + x += xs120; add_subwindow(new HistogramReset(plugin, x, y)); - x += 100; + x += xs100; add_subwindow(new BC_Title(x, y, _("Threshold:"))); - x += 100; + x += xs100; threshold = new HistogramOutputText(plugin, this, x, y, &plugin->config.threshold); threshold->create_objects(); x = x1; - y += 40; + y += ys40; add_subwindow(split = new HistogramSplit(plugin, x, y)); - y += 6; - x += 150; + y += ys6; + x += xs150; add_subwindow(new BC_Title(x,y, _("Interpolation:"))); - x += 120; + x += xs120; add_subwindow(smoothModeChoser = new HistogramSmoothMode(plugin, this, x, y)); smoothModeChoser->create_objects(); @@ -744,7 +746,7 @@ HistogramOutputText::HistogramOutputText(HistogramMain *plugin, HistogramWindow *gui, int x, int y, float *output) : BC_TumbleTextBox(gui, output ? (float)*output : 0.0, (float)HIST_MIN_INPUT, (float)HIST_MAX_INPUT, - x, y, 60) + x, y, xS(60)) { this->plugin = plugin; this->output = output; @@ -769,7 +771,7 @@ HistogramInputText::HistogramInputText(HistogramMain *plugin, HistogramWindow *gui, int x, int y, int do_x) : BC_TumbleTextBox(gui, 0.0, (float)HIST_MIN_INPUT, (float)HIST_MAX_INPUT, - x, y, 60) + x, y, xS(60)) { this->do_x = do_x; this->plugin = plugin; @@ -828,7 +830,7 @@ void HistogramInputText::update() HistogramSmoothMode::HistogramSmoothMode(HistogramMain*plugin, HistogramWindow *gui, int x, int y) - : BC_PopupMenu(x, y, 120, to_text(plugin->config.smoothMode), 1) + : BC_PopupMenu(x, y, xS(120), to_text(plugin->config.smoothMode), 1) { this->plugin = plugin; this->gui = gui; diff --git a/cinelerra-5.1/plugins/holo/holowindow.C b/cinelerra-5.1/plugins/holo/holowindow.C index 3a7f17b5..b607002b 100644 --- a/cinelerra-5.1/plugins/holo/holowindow.C +++ b/cinelerra-5.1/plugins/holo/holowindow.C @@ -31,10 +31,10 @@ HoloWindow::HoloWindow(HoloMain *client) : PluginClientWindow(client, - 300, - 170, - 300, - 170, + xS(300), + yS(170), + xS(300), + yS(170), 0) { this->client = client; @@ -46,7 +46,7 @@ HoloWindow::~HoloWindow() void HoloWindow::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); add_subwindow(new BC_Title(x, y, "HolographicTV from EffectTV\n" "Copyright (C) 2001 FUKUCHI Kentarou") diff --git a/cinelerra-5.1/plugins/huesaturation/huesaturation.C b/cinelerra-5.1/plugins/huesaturation/huesaturation.C index ce1e1512..bbaf2ca6 100644 --- a/cinelerra-5.1/plugins/huesaturation/huesaturation.C +++ b/cinelerra-5.1/plugins/huesaturation/huesaturation.C @@ -227,31 +227,33 @@ int HueSliderClr::handle_event() HueWindow::HueWindow(HueEffect *plugin) - : PluginClientWindow(plugin, 370, 140, 370, 140, 0) + : PluginClientWindow(plugin, xS(370), yS(140), xS(370), yS(140), 0) { this->plugin = plugin; } void HueWindow::create_objects() { - int x = 10, y = 10, x1 = 100; - int x2 = 0; int clrBtn_w = 50; + int xs10 = xS(10), xs50 = xS(50), xs100 = xS(100), xs200 = xS(200); + int ys10 = yS(10), ys30 = yS(30), ys40 = yS(40); + int x = xs10, y = ys10, x1 = xs100; + int x2 = 0; int clrBtn_w = xs50; add_subwindow(new BC_Title(x, y, _("Hue:"))); - add_subwindow(hue = new HueSlider(plugin, x1, y, 200)); - x2 = x1 + hue->get_w() + 10; + add_subwindow(hue = new HueSlider(plugin, x1, y, xs200)); + x2 = x1 + hue->get_w() + xs10; add_subwindow(hueClr = new HueSliderClr(plugin, this, x2, y, clrBtn_w, RESET_HUV)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Saturation:"))); - add_subwindow(saturation = new SaturationSlider(plugin, x1, y, 200)); + add_subwindow(saturation = new SaturationSlider(plugin, x1, y, xs200)); add_subwindow(satClr = new HueSliderClr(plugin, this, x2, y, clrBtn_w, RESET_SAT)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Value:"))); - add_subwindow(value = new ValueSlider(plugin, x1, y, 200)); + add_subwindow(value = new ValueSlider(plugin, x1, y, xs200)); add_subwindow(valClr = new HueSliderClr(plugin, this, x2, y, clrBtn_w, RESET_VAL)); - y += 40; + y += ys40; add_subwindow(reset = new HueReset(plugin, this, x, y)); show_window(); flush(); diff --git a/cinelerra-5.1/plugins/interpolate/interpolate.C b/cinelerra-5.1/plugins/interpolate/interpolate.C index 9294d8fd..05c8565c 100644 --- a/cinelerra-5.1/plugins/interpolate/interpolate.C +++ b/cinelerra-5.1/plugins/interpolate/interpolate.C @@ -45,8 +45,8 @@ InterpolatePixelsOffset::InterpolatePixelsOffset(InterpolatePixelsWindow *window : BC_ISlider(x, y, 0, - 50, - 50, + xS(50), + yS(50), 0, 1, *output, @@ -74,10 +74,10 @@ int InterpolatePixelsOffset::handle_event() InterpolatePixelsWindow::InterpolatePixelsWindow(InterpolatePixelsMain *client) : PluginClientWindow(client, - 200, - 100, - 200, - 100, + xS(200), + yS(100), + xS(200), + yS(100), 0) { this->client = client; @@ -89,21 +89,23 @@ InterpolatePixelsWindow::~InterpolatePixelsWindow() void InterpolatePixelsWindow::create_objects() { - int x = 10, y = 10; + int xs5 = xS(5), xs10 = xS(10), xs50 = xS(50); + int ys5 = yS(5), ys10 = yS(10); + int x = xs10, y = ys10; BC_Title *title; add_tool(title = new BC_Title(x, y, _("X Offset:"))); add_tool(x_offset = new InterpolatePixelsOffset(this, - x + title->get_w() + 5, + x + title->get_w() + xs5, y, &client->config.x)); - y += MAX(x_offset->get_h(), title->get_h()) + 5; + y += MAX(x_offset->get_h(), title->get_h()) + ys5; add_tool(title = new BC_Title(x, y, _("Y Offset:"))); add_tool(y_offset = new InterpolatePixelsOffset(this, - x + title->get_w() + 5, + x + title->get_w() + xs5, y, &client->config.y)); - y += MAX(y_offset->get_h(), title->get_h()) + 5; + y += MAX(y_offset->get_h(), title->get_h()) + ys5; show_window(); } diff --git a/cinelerra-5.1/plugins/interpolatevideo/interpolatewindow.C b/cinelerra-5.1/plugins/interpolatevideo/interpolatewindow.C index 3db333ff..a0052ea1 100644 --- a/cinelerra-5.1/plugins/interpolatevideo/interpolatewindow.C +++ b/cinelerra-5.1/plugins/interpolatevideo/interpolatewindow.C @@ -34,10 +34,10 @@ InterpolateVideoWindow::InterpolateVideoWindow(InterpolateVideo *plugin) : PluginClientWindow(plugin, - 250, - 250, - 250, - 250, + xS(250), + yS(250), + xS(250), + yS(250), 0) { this->plugin = plugin; @@ -49,7 +49,9 @@ InterpolateVideoWindow::~InterpolateVideoWindow() void InterpolateVideoWindow::create_objects() { - int x = 10, y = 10; + int xs5 = xS(5), xs10 = xS(10); + int ys10 = yS(10); + int x = xs10, y = ys10; BC_Title *title; @@ -62,7 +64,7 @@ void InterpolateVideoWindow::create_objects() y)); add_subwindow(rate_menu = new InterpolateVideoRateMenu(plugin, this, - x + rate->get_w() + 5, + x + rate->get_w() + xs5, y)); y += rate->get_h() + plugin->get_theme()->widget_border; add_subwindow(keyframes = new InterpolateVideoKeyframes(plugin, @@ -147,7 +149,7 @@ InterpolateVideoRate::InterpolateVideoRate(InterpolateVideo *plugin, int y) : BC_TextBox(x, y, - 90, + xS(90), 1, (float)plugin->config.input_rate) { @@ -171,8 +173,8 @@ InterpolateVideoRateMenu::InterpolateVideoRateMenu(InterpolateVideo *plugin, int y) : BC_ListBox(x, y, - 100, - 200, + xS(100), + yS(200), LISTBOX_TEXT, &plugin->get_theme()->frame_rates, 0, diff --git a/cinelerra-5.1/plugins/invertvideo/invert.C b/cinelerra-5.1/plugins/invertvideo/invert.C index 7dc94c01..13ee8dd8 100644 --- a/cinelerra-5.1/plugins/invertvideo/invert.C +++ b/cinelerra-5.1/plugins/invertvideo/invert.C @@ -157,25 +157,21 @@ int InvertVideoEnable::handle_event() InvertVideoWindow::InvertVideoWindow(InvertVideoEffect *plugin) - : PluginClientWindow(plugin, - 260, - 130, - 260, - 130, - 0) + : PluginClientWindow(plugin, xS(200), yS(130), xS(200), yS(130), 0) { this->plugin = plugin; } void InvertVideoWindow::create_objects() { - int x = 10, y = 10; + int ys30 = yS(30); + int x = xS(10), y = yS(10); add_subwindow(r = new InvertVideoEnable(plugin, &plugin->config.r, x, y, _("Invert R"))); - y += 30; + y += ys30; add_subwindow(g = new InvertVideoEnable(plugin, &plugin->config.g, x, y, _("Invert G"))); - y += 30; + y += ys30; add_subwindow(b = new InvertVideoEnable(plugin, &plugin->config.b, x, y, _("Invert B"))); - y += 30; + y += ys30; add_subwindow(a = new InvertVideoEnable(plugin, &plugin->config.a, x, y, _("Invert A"))); show_window(); diff --git a/cinelerra-5.1/plugins/invertvideo/invertwindow.C b/cinelerra-5.1/plugins/invertvideo/invertwindow.C index 24895eec..200341be 100644 --- a/cinelerra-5.1/plugins/invertvideo/invertwindow.C +++ b/cinelerra-5.1/plugins/invertvideo/invertwindow.C @@ -38,9 +38,11 @@ InvertWindow::~InvertWindow() int InvertWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10); + int ys10 = yS(10), ys20 = yS(20), ys30 = yS(30), ys35 = yS(35); + int x = xs10, y = ys10; add_tool(new BC_Title(x, y, _("Invert"))); - y += 20; + y += ys20; add_tool(invert = new InvertToggle(client, &(client->invert), x, y)); } diff --git a/cinelerra-5.1/plugins/irissquare/irissquare.C b/cinelerra-5.1/plugins/irissquare/irissquare.C index 6d3d85b3..f48ab927 100644 --- a/cinelerra-5.1/plugins/irissquare/irissquare.C +++ b/cinelerra-5.1/plugins/irissquare/irissquare.C @@ -92,10 +92,10 @@ int IrisSquareOut::handle_event() IrisSquareWindow::IrisSquareWindow(IrisSquareMain *plugin) : PluginClientWindow(plugin, - 320, - 50, - 320, - 50, + xS(320), + yS(50), + xS(320), + yS(50), 0) { this->plugin = plugin; @@ -104,14 +104,16 @@ IrisSquareWindow::IrisSquareWindow(IrisSquareMain *plugin) void IrisSquareWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10), xs100 = xS(100); + int ys10 = yS(10); + int x = xs10, y = ys10; add_subwindow(new BC_Title(x, y, _("Direction:"))); - x += 100; + x += xs100; add_subwindow(in = new IrisSquareIn(plugin, this, x, y)); - x += 100; + x += xs100; add_subwindow(out = new IrisSquareOut(plugin, this, x, diff --git a/cinelerra-5.1/plugins/ivtc/ivtcwindow.C b/cinelerra-5.1/plugins/ivtc/ivtcwindow.C index 22a113ca..d3b99664 100644 --- a/cinelerra-5.1/plugins/ivtc/ivtcwindow.C +++ b/cinelerra-5.1/plugins/ivtc/ivtcwindow.C @@ -42,10 +42,10 @@ static const char *pattern_text[] = IVTCWindow::IVTCWindow(IVTCMain *client) : PluginClientWindow(client, - 210, - 230, - 210, - 230, + xS(210), + yS(230), + xS(210), + yS(230), 0) { this->client = client; @@ -57,18 +57,20 @@ IVTCWindow::~IVTCWindow() void IVTCWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10); + int ys10 = yS(10), ys20 = yS(20), ys30 = yS(30), ys40 = yS(40); + int x = xs10, y = ys10; add_tool(new BC_Title(x, y, _("Pattern offset:"))); - y += 20; + y += ys20; add_tool(frame_offset = new IVTCOffset(client, x, y)); - y += 30; + y += ys30; add_tool(first_field = new IVTCFieldOrder(client, x, y)); -// y += 30; +// y += ys30; // add_tool(automatic = new IVTCAuto(client, x, y)); - y += 40; + y += ys40; add_subwindow(new BC_Title(x, y, _("Pattern:"))); - y += 20; + y += ys20; for(int i = 0; i < TOTAL_PATTERNS; i++) { add_subwindow(pattern[i] = new IVTCPattern(client, @@ -77,7 +79,7 @@ void IVTCWindow::create_objects() _(pattern_text[i]), x, y)); - y += 20; + y += ys20; } if(client->config.pattern == IVTCConfig::AUTOMATIC) @@ -85,9 +87,9 @@ void IVTCWindow::create_objects() frame_offset->disable(); first_field->disable(); } -// y += 30; +// y += ys30; // add_tool(new BC_Title(x, y, _("Field threshold:"))); -// y += 20; +// y += ys20; // add_tool(threshold = new IVTCAutoThreshold(client, x, y)); show_window(); flush(); @@ -98,7 +100,7 @@ void IVTCWindow::create_objects() IVTCOffset::IVTCOffset(IVTCMain *client, int x, int y) : BC_TextBox(x, y, - 190, + xS(190), 1, client->config.frame_offset) { @@ -189,7 +191,7 @@ int IVTCPattern::handle_event() IVTCAutoThreshold::IVTCAutoThreshold(IVTCMain *client, int x, int y) - : BC_TextBox(x, y, 190, 1, client->config.auto_threshold) + : BC_TextBox(x, y, xS(190), 1, client->config.auto_threshold) { this->client = client; } diff --git a/cinelerra-5.1/plugins/lens/lens.C b/cinelerra-5.1/plugins/lens/lens.C index 7649377b..a6777be2 100644 --- a/cinelerra-5.1/plugins/lens/lens.C +++ b/cinelerra-5.1/plugins/lens/lens.C @@ -115,7 +115,7 @@ void LensConfig::boundaries() LensSlider::LensSlider(LensMain *plugin, LensGUI *gui, LensText *text, float *output, int x, int y, float min, float max) - : BC_FSlider(x, y, 0, 200, 200, min, max, *output) + : BC_FSlider(x, y, 0, xS(200), yS(200), min, max, *output) { this->gui = gui; this->plugin = plugin; @@ -161,7 +161,7 @@ int LensSlider::handle_event() LensText::LensText(LensMain *plugin, LensGUI *gui, LensSlider *slider, float *output, int x, int y) - : BC_TextBox(x, y, 100, 1, *output) + : BC_TextBox(x, y, xS(100), 1, *output) { this->gui = gui; this->plugin = plugin; @@ -260,7 +260,7 @@ int LensMode::calculate_w(LensGUI *gui) result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(LensConfig::SPHERICAL_SHRINK))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(LensConfig::RECTILINEAR_STRETCH))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(LensConfig::RECTILINEAR_SHRINK))); - return result + 50; + return result + xS(50); } int LensMode::from_text(char *text) @@ -385,7 +385,7 @@ int LensInterpItem::handle_event() } LensInterp::LensInterp(LensMain *plugin, int x, int y) - : BC_PopupMenu(x, y, 120, "") + : BC_PopupMenu(x, y, xS(120), "") { this->plugin = plugin; } @@ -434,7 +434,7 @@ int LensReset::handle_event() LensGUI::LensGUI(LensMain *plugin) - : PluginClientWindow(plugin, 350, 550, 350, 550, 0) + : PluginClientWindow(plugin, xS(350), yS(556), xS(350), yS(556), 0) { this->plugin = plugin; } @@ -446,8 +446,10 @@ LensGUI::~LensGUI() void LensGUI::create_objects() { - int x = 10; - int y = 10; + int xs5 = xS(5), xs10 = xS(10); + int ys5 = yS(5), ys10 = yS(10); + int x = xs10; + int y = ys10; int x1; BC_Title *title = 0; LensToggle *toggle; @@ -460,104 +462,104 @@ void LensGUI::create_objects() case 3: add_tool(title = new BC_Title(x, y, _("A Field of View:"))); break; } - y += title->get_h() + 5; + y += title->get_h() + ys5; add_tool(fov_slider[i] = new LensSlider(plugin, this, 0, &plugin->config.fov[i], x, y, 0.0001, 1.0)); - x1 = x + fov_slider[i]->get_w() + 5; + x1 = x + fov_slider[i]->get_w() + xs5; add_tool(fov_text[i] = new LensText(plugin, this, fov_slider[i], &plugin->config.fov[i], x1, y)); fov_slider[i]->text = fov_text[i]; - y += fov_text[i]->get_h() + 5; + y += fov_text[i]->get_h() + ys5; } add_tool(toggle = new LensToggle(plugin, &plugin->lock, x, y, _("Lock"))); - y += toggle->get_h() + 10; + y += toggle->get_h() + ys10; BC_Bar *bar; add_tool(bar = new BC_Bar(x, y, get_w() - x * 2)); - y += bar->get_h() + 5; + y += bar->get_h() + ys5; add_tool(title = new BC_Title(x, y, _("Aspect Ratio:"))); - y += title->get_h() + 5; + y += title->get_h() + ys5; add_tool(aspect_slider = new LensSlider(plugin, this, 0, &plugin->config.aspect, x, y, 0.333, 3.0)); - x1 = x + aspect_slider->get_w() + 5; + x1 = x + aspect_slider->get_w() + xs5; add_tool(aspect_text = new LensText(plugin, this, aspect_slider, &plugin->config.aspect, x1, y)); aspect_slider->text = aspect_text; - y += aspect_text->get_h() + 5; + y += aspect_text->get_h() + ys5; add_tool(title = new BC_Title(x, y, _("Radius:"))); - y += title->get_h() + 5; + y += title->get_h() + ys5; add_tool(radius_slider = new LensSlider(plugin, this, 0, &plugin->config.radius, x, y, 0.333, 3.0)); - x1 = x + radius_slider->get_w() + 5; + x1 = x + radius_slider->get_w() + xs5; add_tool(radius_text = new LensText(plugin, this, radius_slider, &plugin->config.radius, x1, y)); radius_slider->text = radius_text; - y += radius_text->get_h() + 5; + y += radius_text->get_h() + ys5; add_tool(title = new BC_Title(x, y, _("Center X:"))); - y += title->get_h() + 5; + y += title->get_h() + ys5; add_tool(centerx_slider = new LensSlider(plugin, this, 0, &plugin->config.center_x, x, y, 0.0, 99.0)); - x1 = x + centerx_slider->get_w() + 5; + x1 = x + centerx_slider->get_w() + xs5; add_tool(centerx_text = new LensText(plugin, this, centerx_slider, &plugin->config.center_x, x1, y)); centerx_slider->text = centerx_text; centerx_slider->set_precision(1.0); - y += centerx_text->get_h() + 5; + y += centerx_text->get_h() + ys5; add_tool(title = new BC_Title(x, y, _("Center Y:"))); - y += title->get_h() + 5; + y += title->get_h() + ys5; add_tool(centery_slider = new LensSlider(plugin, this, 0, &plugin->config.center_y, x, y, 0.0, 99.0)); - x1 = x + centery_slider->get_w() + 5; + x1 = x + centery_slider->get_w() + xs5; add_tool(centery_text = new LensText(plugin, this, centery_slider, &plugin->config.center_y, x1, y)); centery_slider->text = centery_text; centery_slider->set_precision(1.0); - y += centery_text->get_h() + 10; + y += centery_text->get_h() + ys10; add_tool(bar = new BC_Bar(x, y, get_w() - x * 2)); - y += bar->get_h() + 5; + y += bar->get_h() + ys5; // add_tool(reverse = new LensToggle(plugin, // &plugin->config.reverse, x, y, _("Reverse"))); -// y += reverse->get_h() + 5; +// y += reverse->get_h() + ys5; add_tool(draw_guides = new LensToggle(plugin, &plugin->config.draw_guides, x, y, _("Draw center"))); - y += draw_guides->get_h() + 5; + y += draw_guides->get_h() + ys5; add_tool(title = new BC_Title(x, y, _("Mode:"))); add_tool(mode = new LensMode(plugin, this, - x + title->get_w() + 5, y)); + x + title->get_w() + xs5, y)); mode->create_objects(); - y += mode->get_h() + 5; + y += mode->get_h() + ys5; add_tool(title = new BC_Title(x, y, _("Interp:"))); - x1 = x + title->get_w() + 5; + x1 = x + title->get_w() + xs5; add_tool(interp = new LensInterp(plugin, x1, y)); interp->create_objects(); - y += interp->get_h() + 5; + y += interp->get_h() + ys5; add_tool(reset = new LensReset(plugin, this, x, y)); - y += reset->get_h() + 5; + y += reset->get_h() + ys5; // add_tool(title = new BC_Title(x, y, _("Preset:"))); // add_tool(presets = new LensPresets(plugin, this, -// x + title->get_w() + 5, y, get_w() - x - title->get_w() - 50)); +// x + title->get_w() + xs5, y, get_w() - x - title->get_w() - xS(50))); // presets->create_objects(); -// y += presets->get_h() + 5; +// y += presets->get_h() + ys5; // // add_tool(save_preset = new LensSavePreset(plugin, this, x, y)); // add_tool(preset_text = new LensPresetText(plugin, this, -// x + save_preset->get_w() + 5, y, -// get_w() - x - save_preset->get_w() - 10)); -// y += preset_text->get_h() + 5; +// x + save_preset->get_w() + xs5, y, +// get_w() - x - save_preset->get_w() - xs10)); +// y += preset_text->get_h() + ys5; // add_tool(delete_preset = new LensDeletePreset(plugin, this, x, y)); show_window(); diff --git a/cinelerra-5.1/plugins/level/leveleffect.C b/cinelerra-5.1/plugins/level/leveleffect.C index d8c00d03..a81b357b 100644 --- a/cinelerra-5.1/plugins/level/leveleffect.C +++ b/cinelerra-5.1/plugins/level/leveleffect.C @@ -93,7 +93,7 @@ void SoundLevelConfig::interpolate(SoundLevelConfig &prev, SoundLevelDuration::SoundLevelDuration(SoundLevelEffect *plugin, int x, int y) - : BC_FSlider(x, y, 0, 180, 180, 0.0, 10.0, plugin->config.duration) + : BC_FSlider(x, y, 0, xS(180), yS(180), 0.0, 10.0, plugin->config.duration) { this->plugin = plugin; set_precision(0.1); @@ -110,10 +110,10 @@ int SoundLevelDuration::handle_event() SoundLevelWindow::SoundLevelWindow(SoundLevelEffect *plugin) : PluginClientWindow(plugin, - 350, - 120, - 350, - 120, + xS(350), + yS(120), + xS(350), + yS(120), 0) { this->plugin = plugin; @@ -121,18 +121,20 @@ SoundLevelWindow::SoundLevelWindow(SoundLevelEffect *plugin) void SoundLevelWindow::create_objects() { + int xs10 = xS(10), xs150 = xS(150); + int ys10 = yS(10), ys35 = yS(35); //printf("SoundLevelWindow::create_objects 1\n"); - int x = 10, y = 10; + int x = xs10, y = ys10; add_subwindow(new BC_Title(x, y, _("Duration (seconds):"))); - add_subwindow(duration = new SoundLevelDuration(plugin, x + 150, y)); - y += 35; + add_subwindow(duration = new SoundLevelDuration(plugin, x + xs150, y)); + y += ys35; add_subwindow(new BC_Title(x, y, _("Max soundlevel (dB):"))); - add_subwindow(soundlevel_max = new BC_Title(x + 150, y, "0.0")); - y += 35; + add_subwindow(soundlevel_max = new BC_Title(x + xs150, y, "0.0")); + y += ys35; add_subwindow(new BC_Title(x, y, _("RMS soundlevel (dB):"))); - add_subwindow(soundlevel_rms = new BC_Title(x + 150, y, "0.0")); + add_subwindow(soundlevel_rms = new BC_Title(x + xs150, y, "0.0")); show_window(); flush(); diff --git a/cinelerra-5.1/plugins/linearblur/linearblur.C b/cinelerra-5.1/plugins/linearblur/linearblur.C index dab0043a..428b6083 100644 --- a/cinelerra-5.1/plugins/linearblur/linearblur.C +++ b/cinelerra-5.1/plugins/linearblur/linearblur.C @@ -135,10 +135,10 @@ void LinearBlurConfig::interpolate(LinearBlurConfig &prev, LinearBlurWindow::LinearBlurWindow(LinearBlurMain *plugin) : PluginClientWindow(plugin, - 280, - 320, - 280, - 320, + xS(280), + yS(320), + xS(280), + yS(320), 0) { this->plugin = plugin; @@ -150,40 +150,42 @@ LinearBlurWindow::~LinearBlurWindow() void LinearBlurWindow::create_objects() { - int x = 10, y = 10; - int x1 = 0; int clrBtn_w = 50; - int defaultBtn_w = 100; + int xs10 = xS(10), xs50 = xS(50), xs100 = xS(100); + int ys10 = yS(10), ys20 = yS(20), ys30 = yS(30), ys40 = yS(40); + int x = xs10, y = ys10; + int x1 = 0; int clrBtn_w = xs50; + int defaultBtn_w = xs100; add_subwindow(new BC_Title(x, y, _("Length:"))); - y += 20; + y += ys20; add_subwindow(radius = new LinearBlurSize(plugin, x, y, &plugin->config.radius, 0, 100)); - x1 = x + radius->get_w() + 10; + x1 = x + radius->get_w() + xs10; add_subwindow(radiusClr = new LinearBlurSliderClr(plugin, this, x1, y, clrBtn_w, RESET_RADIUS)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Angle:"))); - y += 20; + y += ys20; add_subwindow(angle = new LinearBlurSize(plugin, x, y, &plugin->config.angle, -180, 180)); add_subwindow(angleClr = new LinearBlurSliderClr(plugin, this, x1, y, clrBtn_w, RESET_ANGLE)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Steps:"))); - y += 20; + y += ys20; add_subwindow(steps = new LinearBlurSize(plugin, x, y, &plugin->config.steps, 1, 200)); add_subwindow(stepsClr = new LinearBlurSliderClr(plugin, this, x1, y, clrBtn_w, RESET_STEPS)); - y += 30; + y += ys30; add_subwindow(r = new LinearBlurToggle(plugin, x, y, &plugin->config.r, _("Red"))); - y += 30; + y += ys30; add_subwindow(g = new LinearBlurToggle(plugin, x, y, &plugin->config.g, _("Green"))); - y += 30; + y += ys30; add_subwindow(b = new LinearBlurToggle(plugin, x, y, &plugin->config.b, _("Blue"))); - y += 30; + y += ys30; add_subwindow(a = new LinearBlurToggle(plugin, x, y, &plugin->config.a, _("Alpha"))); - y += 40; + y += ys40; add_subwindow(reset = new LinearBlurReset(plugin, this, x, y)); add_subwindow(default_settings = new LinearBlurDefaultSettings(plugin, this, - (280 - 10 - defaultBtn_w), y, defaultBtn_w)); + (xS(280) - xs10 - defaultBtn_w), y, defaultBtn_w)); show_window(); flush(); @@ -253,7 +255,7 @@ LinearBlurSize::LinearBlurSize(LinearBlurMain *plugin, int *output, int min, int max) - : BC_ISlider(x, y, 0, 200, 200, min, max, *output) + : BC_ISlider(x, y, 0, xS(200), yS(200), min, max, *output) { this->plugin = plugin; this->output = output; diff --git a/cinelerra-5.1/plugins/liveaudio/liveaudio.C b/cinelerra-5.1/plugins/liveaudio/liveaudio.C index 394608b3..3d36db72 100644 --- a/cinelerra-5.1/plugins/liveaudio/liveaudio.C +++ b/cinelerra-5.1/plugins/liveaudio/liveaudio.C @@ -128,10 +128,10 @@ LiveAudioConfig::LiveAudioConfig() LiveAudioWindow::LiveAudioWindow(LiveAudio *plugin) : PluginClientWindow(plugin, - 300, - 160, - 300, - 160, + xS(300), + yS(160), + xS(300), + yS(160), 0) { this->plugin = plugin; @@ -143,7 +143,7 @@ LiveAudioWindow::~LiveAudioWindow() void LiveAudioWindow::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); BC_Title *title; add_subwindow(title = new BC_Title(x, y, _("Live audio"))); diff --git a/cinelerra-5.1/plugins/livevideo/livevideo.C b/cinelerra-5.1/plugins/livevideo/livevideo.C index f08a7371..1aa84222 100644 --- a/cinelerra-5.1/plugins/livevideo/livevideo.C +++ b/cinelerra-5.1/plugins/livevideo/livevideo.C @@ -197,8 +197,8 @@ LiveVideoWindow::LiveVideoWindow(LiveVideo *plugin) : PluginClientWindow(plugin, plugin->w, plugin->h, - 100, - 100, + xS(100), + yS(100), 1) { this->plugin = plugin; @@ -211,7 +211,9 @@ LiveVideoWindow::~LiveVideoWindow() void LiveVideoWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10); + int ys5 = yS(5), ys10 = yS(10); + int x = xs10, y = ys10; EDLSession *session = plugin->get_edl()->session; if(session) @@ -225,14 +227,14 @@ void LiveVideoWindow::create_objects() } add_subwindow(title = new BC_Title(x, y, _("Channels:"))); - y += title->get_h() + 5; + y += title->get_h() + ys5; add_subwindow(list = new LiveChannelList(plugin, this, x, y, - get_w() - x - 10, - get_h() - y - BC_OKButton::calculate_h() - 10 - 10)); - y += list->get_h() + 10; + get_w() - x - xs10, + get_h() - y - BC_OKButton::calculate_h() - ys10 - ys10)); + y += list->get_h() + ys10; add_subwindow(select = new LiveChannelSelect(plugin, this, x, @@ -345,8 +347,8 @@ LiveVideo::LiveVideo(PluginServer *server) vdevice = 0; temp = 0; channeldb = new ChannelDB; - w = 320; - h = 640; + w = xS(320); + h = yS(640); prev_channel = 0; dv = 0; mjpeg = 0; diff --git a/cinelerra-5.1/plugins/loopaudio/loopaudio.C b/cinelerra-5.1/plugins/loopaudio/loopaudio.C index 8bae8b51..5974c90e 100644 --- a/cinelerra-5.1/plugins/loopaudio/loopaudio.C +++ b/cinelerra-5.1/plugins/loopaudio/loopaudio.C @@ -103,10 +103,10 @@ LoopAudioConfig::LoopAudioConfig() LoopAudioWindow::LoopAudioWindow(LoopAudio *plugin) : PluginClientWindow(plugin, - 210, - 160, - 200, - 160, + xS(210), + yS(160), + xS(200), + yS(160), 0) { this->plugin = plugin; @@ -118,10 +118,12 @@ LoopAudioWindow::~LoopAudioWindow() void LoopAudioWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10); + int ys10 = yS(10), ys20 = yS(20); + int x = xs10, y = ys10; add_subwindow(new BC_Title(x, y, _("Samples to loop:"))); - y += 20; + y += ys20; add_subwindow(samples = new LoopAudioSamples(plugin, x, y)); @@ -142,7 +144,7 @@ LoopAudioSamples::LoopAudioSamples(LoopAudio *plugin, int y) : BC_TextBox(x, y, - 100, + xS(100), 1, plugin->config.samples) { diff --git a/cinelerra-5.1/plugins/loopvideo/loopvideo.C b/cinelerra-5.1/plugins/loopvideo/loopvideo.C index 17983efa..dd20c24a 100644 --- a/cinelerra-5.1/plugins/loopvideo/loopvideo.C +++ b/cinelerra-5.1/plugins/loopvideo/loopvideo.C @@ -100,10 +100,10 @@ LoopVideoConfig::LoopVideoConfig() LoopVideoWindow::LoopVideoWindow(LoopVideo *plugin) : PluginClientWindow(plugin, - 210, - 160, - 200, - 160, + xS(210), + yS(160), + xS(200), + yS(160), 0) { this->plugin = plugin; @@ -115,10 +115,12 @@ LoopVideoWindow::~LoopVideoWindow() void LoopVideoWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10); + int ys10 = yS(10), ys20 = yS(20); + int x = xs10, y = ys10; add_subwindow(new BC_Title(x, y, _("Frames to loop:"))); - y += 20; + y += ys20; add_subwindow(frames = new LoopVideoFrames(plugin, x, y)); @@ -141,7 +143,7 @@ LoopVideoFrames::LoopVideoFrames(LoopVideo *plugin, int y) : BC_TextBox(x, y, - 100, + xS(100), 1, plugin->config.frames) { diff --git a/cinelerra-5.1/plugins/mandelcuda/mandelbrotwindow.C b/cinelerra-5.1/plugins/mandelcuda/mandelbrotwindow.C index c4b11687..1808bc43 100644 --- a/cinelerra-5.1/plugins/mandelcuda/mandelbrotwindow.C +++ b/cinelerra-5.1/plugins/mandelcuda/mandelbrotwindow.C @@ -33,7 +33,7 @@ #include "theme.h" MandelbrotWindow::MandelbrotWindow(Mandelbrot *plugin) - : PluginClientWindow(plugin, 180, 130, 180, 130, 0) + : PluginClientWindow(plugin, xS(180), yS(130), xS(180), yS(130), 0) { this->plugin = plugin; press_x = press_y = 0; @@ -47,7 +47,7 @@ MandelbrotWindow::~MandelbrotWindow() void MandelbrotWindow::create_objects() { - int x = 10, y = 10, pad = 5; + int x = xS(10), y = yS(10), pad = xS(5); BC_Title *title; add_subwindow(title = new BC_Title(x,y, _("Mandelbrot:"), MEDIUMFONT, YELLOW)); y += title->get_h() + pad; diff --git a/cinelerra-5.1/plugins/motion-cv/motionwindow-cv.C b/cinelerra-5.1/plugins/motion-cv/motionwindow-cv.C index eeadec0c..d797fe93 100644 --- a/cinelerra-5.1/plugins/motion-cv/motionwindow-cv.C +++ b/cinelerra-5.1/plugins/motion-cv/motionwindow-cv.C @@ -31,7 +31,7 @@ #include "pluginserver.h" MotionCVWindow::MotionCVWindow(MotionCVMain *plugin) - : PluginClientWindow(plugin, 815, 600, 815, 600, 0) + : PluginClientWindow(plugin, xS(815), yS(600), xS(815), yS(600), 0) { this->plugin = plugin; } @@ -42,109 +42,111 @@ MotionCVWindow::~MotionCVWindow() void MotionCVWindow::create_objects() { - int x1 = 10, x = 10, y = 10; - int x2 = 410; + int xs10 = xS(10), xs20 = xS(20), xs30 = xS(30), xs50 = xS(50), xs120 = xS(120), xs410 = xS(410); + int ys10 = yS(10), ys20 = yS(20), ys30 = yS(30), ys40 = yS(40), ys50 = yS(50); + int x1 = xs10, x = xs10, y = ys10; + int x2 = xs410; BC_Title *title; add_subwindow(global = new MotionCVGlobal(plugin, this, x1, y)); add_subwindow(rotate = new MotionCVRotate(plugin, this, x2, y)); - y += 50; + y += ys50; add_subwindow(title = new BC_Title(x1, y, _("Translation search radius:\n(W/H Percent of image)"))); add_subwindow(global_range_w = new GlobalRange(plugin, - x1 + title->get_w() + 10, y, + x1 + title->get_w() + xs10, y, &plugin->config.global_range_w)); add_subwindow(global_range_h = new GlobalRange(plugin, - x1 + title->get_w() + 30 + global_range_w->get_w(), y, + x1 + title->get_w() + xs30 + global_range_w->get_w(), y, &plugin->config.global_range_h)); add_subwindow(title = new BC_Title(x2, y, _("Rotation search radius:\n(Degrees)"))); add_subwindow(rotation_range = - new RotationRange(plugin, x2 + title->get_w() + 10, y)); + new RotationRange(plugin, x2 + title->get_w() + xs10, y)); - y += 50; + y += ys50; add_subwindow(title = new BC_Title(x1, y, _("Translation block size:\n(W/H Percent of image)"))); add_subwindow(global_block_w = new BlockSize(plugin, - x1 + title->get_w() + 10, y, + x1 + title->get_w() + xs10, y, &plugin->config.global_block_w)); add_subwindow(global_block_h = new BlockSize(plugin, - x1 + title->get_w() + 30 + global_block_w->get_w(), y, + x1 + title->get_w() + xs30 + global_block_w->get_w(), y, &plugin->config.global_block_h)); add_subwindow(title = new BC_Title(x2, y, _("Rotation block size:\n(W/H Percent of image)"))); add_subwindow(rotation_block_w = new BlockSize(plugin, - x2 + title->get_w() + 10, y, + x2 + title->get_w() + xs10, y, &plugin->config.rotation_block_w)); add_subwindow(rotation_block_h = new BlockSize(plugin, - x2 + title->get_w() + 30 + rotation_block_w->get_w(), y, + x2 + title->get_w() + xs30 + rotation_block_w->get_w(), y, &plugin->config.rotation_block_h)); - y += 50; + y += ys50; add_subwindow(title = new BC_Title(x1, y, _("Translation search steps:"))); add_subwindow(global_search_positions = new GlobalSearchPositions(plugin, - x1 + title->get_w() + 10, y, 80)); + x1 + title->get_w() + xs10, y, xs120)); global_search_positions->create_objects(); add_subwindow(title = new BC_Title(x2, y, _("Rotation search steps:"))); add_subwindow(rotation_search_positions = new RotationSearchPositions(plugin, - x2 + title->get_w() + 10, y, 80)); + x2 + title->get_w() + xs10, y, xs120)); rotation_search_positions->create_objects(); - y += 50; + y += ys50; add_subwindow(title = new BC_Title(x, y, _("Translation direction:"))); add_subwindow(mode3 = new Mode3(plugin, - this, x + title->get_w() + 10, y)); + this, x + title->get_w() + xs10, y)); mode3->create_objects(); - y += 40; int y1 = y; + y += ys40; int y1 = y; add_subwindow(title = new BC_Title(x2, y, _("Tracking file:"))); add_subwindow(tracking_file = new MotionCVTrackingFile(plugin, plugin->config. tracking_file, this, - x2 + title->get_w() + 20, y)); - y1 += tracking_file->get_h() + 10; + x2 + title->get_w() + xs20, y)); + y1 += tracking_file->get_h() + ys10; - add_subwindow(title = new BC_Title(x, y + 10, _("Block X:"))); + add_subwindow(title = new BC_Title(x, y + xs10, _("Block X:"))); add_subwindow(block_x = new MotionCVBlockX(plugin, this, - x + title->get_w() + 10, y)); + x + title->get_w() + xs10, y)); add_subwindow(block_x_text = new MotionCVBlockXText(plugin, - this, x + title->get_w() + 10 + block_x->get_w() + 10, y + 10)); + this, x + title->get_w() + xs10 + block_x->get_w() + xs10, y + ys10)); - y += 40; - add_subwindow(title = new BC_Title(x, y + 10, _("Block Y:"))); + y += ys40; + add_subwindow(title = new BC_Title(x, y + ys10, _("Block Y:"))); add_subwindow(block_y = new MotionCVBlockY(plugin, this, - x + title->get_w() + 10, y)); + x + title->get_w() + xs10, y)); add_subwindow(block_y_text = new MotionCVBlockYText(plugin, this, - x + title->get_w() + 10 + block_y->get_w() + 10, y + 10)); + x + title->get_w() + xs10 + block_y->get_w() + xs10, y + ys10)); - add_subwindow(title = new BC_Title(x2, y1 + 10, _("Maximum absolute offset:"))); + add_subwindow(title = new BC_Title(x2, y1 + ys10, _("Maximum absolute offset:"))); add_subwindow(magnitude = new MotionCVMagnitude(plugin, - x2 + title->get_w() + 10, y1)); + x2 + title->get_w() + xs10, y1)); - y1 += 40; - add_subwindow(title = new BC_Title(x2, y1 + 10, _("Settling speed:"))); + y1 += ys40; + add_subwindow(title = new BC_Title(x2, y1 + ys10, _("Settling speed:"))); add_subwindow(return_speed = new MotionCVReturnSpeed(plugin, - x2 + title->get_w() + 10, y1)); + x2 + title->get_w() + xs10, y1)); - y1 += 40; + y1 += ys40; add_subwindow(vectors = new MotionCVDrawVectors(plugin, this, x2, y1)); - y = y1 + vectors->get_h() + 10; + y = y1 + vectors->get_h() + ys10; x1 = x; y1 = y; add_subwindow(track_single = new TrackSingleFrame(plugin, this, x1, y1)); - y += 20; + y += ys20; add_subwindow(track_previous = new TrackPreviousFrame(plugin, this, x, y)); - y += 20; + y += ys20; add_subwindow(previous_same = new PreviousFrameSameBlock(plugin, this, x, y)); - y += 40; + y += ys40; add_subwindow(title = new BC_Title(x, y, _("Master layer:"))); add_subwindow(master_layer = new MasterLayer(plugin, this, - x + title->get_w() + 10, y)); + x + title->get_w() + xs10, y)); master_layer->create_objects(); add_subwindow(title = new BC_Title(x1=x2, y1=y, _("Frame number:"))); @@ -156,23 +158,23 @@ void MotionCVWindow::create_objects() add_subwindow(addtrackedframeoffset = new AddTrackedFrameOffset(plugin, this, x1=x2, y1+=track_frame_number->get_h())); int pef = client->server->mwindow->edl->session->video_every_frame; - add_subwindow(pef_title = new BC_Title(x1=x2+50, y1+=addtrackedframeoffset->get_h() + 5, + add_subwindow(pef_title = new BC_Title(x1=x2+xs50, y1+=addtrackedframeoffset->get_h() + yS(5), !pef ? _("For best results\n" " Set: Play every frame\n" " Preferences-> Playback-> Video Out") : _("Currently using: Play every frame"), MEDIUMFONT, !pef ? RED : GREEN)); - y += 30; + y += ys30; add_subwindow(title = new BC_Title(x, y, _("Action:"))); add_subwindow(mode1 = new Mode1(plugin, this, - x + title->get_w() + 10, y)); + x + title->get_w() + xs10, y)); mode1->create_objects(); - y += 30; + y += ys30; add_subwindow(title = new BC_Title(x, y, _("Calculation:"))); add_subwindow(mode2 = new Mode2(plugin, this, - x + title->get_w() + 10, y)); + x + title->get_w() + xs10, y)); mode2->create_objects(); show_window(1); @@ -336,7 +338,7 @@ int AddTrackedFrameOffset::handle_event() MotionCVTrackingFile::MotionCVTrackingFile(MotionCVMain *plugin, const char *filename, MotionCVWindow *gui, int x, int y) - : BC_TextBox(x, y, 250, 1, filename) + : BC_TextBox(x, y, xS(250), 1, filename) { this->plugin = plugin; this->gui = gui; @@ -413,7 +415,7 @@ int MotionCVBlockY::handle_event() MotionCVBlockXText::MotionCVBlockXText(MotionCVMain *plugin, MotionCVWindow *gui, int x, int y) - : BC_TextBox(x, y, 75, 1, (float)plugin->config.block_x) + : BC_TextBox(x, y, xS(75), 1, (float)plugin->config.block_x) { this->plugin = plugin; this->gui = gui; @@ -430,7 +432,7 @@ int MotionCVBlockXText::handle_event() MotionCVBlockYText::MotionCVBlockYText(MotionCVMain *plugin, MotionCVWindow *gui, int x, int y) - : BC_TextBox(x, y, 75, 1, (float)plugin->config.block_y) + : BC_TextBox(x, y, xS(75), 1, (float)plugin->config.block_y) { this->plugin = plugin; this->gui = gui; @@ -483,7 +485,7 @@ int TrackSingleFrame::handle_event() TrackFrameNumber::TrackFrameNumber(MotionCVMain *plugin, MotionCVWindow *gui, int x, int y) - : BC_TextBox(x, y, 100, 1, plugin->config.track_frame) + : BC_TextBox(x, y, xS(100), 1, plugin->config.track_frame) { this->plugin = plugin; this->gui = gui; @@ -576,7 +578,7 @@ int MasterLayer::calculate_w(MotionCVWindow *gui) int result = 0; result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(0))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(1))); - return result + 50; + return result + xS(80); } Mode1::Mode1(MotionCVMain *plugin, MotionCVWindow *gui, int x, int y) @@ -632,7 +634,7 @@ int Mode1::calculate_w(MotionCVWindow *gui) result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(MotionCVConfig::STABILIZE))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(MotionCVConfig::STABILIZE_PIXEL))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(MotionCVConfig::NOTHING))); - return result + 50; + return result + xS(80); } Mode2::Mode2(MotionCVMain *plugin, MotionCVWindow *gui, int x, int y) @@ -684,7 +686,7 @@ int Mode2::calculate_w(MotionCVWindow *gui) result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(MotionCVConfig::RECALCULATE))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(MotionCVConfig::SAVE))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(MotionCVConfig::LOAD))); - return result + 50; + return result + xS(80); } Mode3::Mode3(MotionCVMain *plugin, MotionCVWindow *gui, int x, int y) @@ -732,7 +734,7 @@ int Mode3::calculate_w(MotionCVWindow *gui) result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(1, 0))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(0, 1))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(0, 0))); - return result + 50; + return result + xS(80); } diff --git a/cinelerra-5.1/plugins/motion-hv/motionwindow-hv.C b/cinelerra-5.1/plugins/motion-hv/motionwindow-hv.C index d61080b9..39560e66 100644 --- a/cinelerra-5.1/plugins/motion-hv/motionwindow-hv.C +++ b/cinelerra-5.1/plugins/motion-hv/motionwindow-hv.C @@ -36,7 +36,7 @@ MotionHVWindow::MotionHVWindow(MotionHVMain *plugin) - : PluginClientWindow(plugin, 600, 650, 600, 650, 0) + : PluginClientWindow(plugin, xS(600), yS(650), xS(600), yS(650), 0) { this->plugin = plugin; } @@ -47,8 +47,10 @@ MotionHVWindow::~MotionHVWindow() void MotionHVWindow::create_objects() { - int x1 = 10, x = 10, y = 10; - int x2 = 310; + int xs10 = xS(10), xs20 = xS(20), xs310 = xS(310); + int ys10 = yS(10), ys20 = yS(20), ys30 = yS(30), ys40 = yS(40), ys50 = yS(50); + int x1 = xs10, x = xs10, y = ys10; + int x2 = xs310; BC_Title *title; @@ -62,17 +64,17 @@ void MotionHVWindow::create_objects() this, x2, y)); - y += 50; + y += ys50; add_subwindow(title = new BC_Title(x1, y, _("Translation search radius:\n(W/H Percent of image)"))); add_subwindow(global_range_w = new GlobalRange(plugin, - x1 + title->get_w() + 10, + x1 + title->get_w() + xs10, y, &plugin->config.global_range_w)); add_subwindow(global_range_h = new GlobalRange(plugin, - x1 + title->get_w() + 10 + global_range_w->get_w(), + x1 + title->get_w() + xs10 + global_range_w->get_w(), y, &plugin->config.global_range_h)); @@ -80,19 +82,19 @@ void MotionHVWindow::create_objects() y, _("Rotation search radius:\n(Degrees)"))); add_subwindow(rotation_range = new RotationRange(plugin, - x2 + title->get_w() + 10, + x2 + title->get_w() + xs10, y)); - y += 50; + y += ys50; add_subwindow(title = new BC_Title(x1, y, _("Translation block size:\n(W/H Percent of image)"))); add_subwindow(global_block_w = new BlockSize(plugin, - x1 + title->get_w() + 10, + x1 + title->get_w() + xs10, y, &plugin->config.global_block_w)); add_subwindow(global_block_h = new BlockSize(plugin, - x1 + title->get_w() + 10 + global_block_w->get_w(), + x1 + title->get_w() + xs10 + global_block_w->get_w(), y, &plugin->config.global_block_h)); @@ -100,148 +102,148 @@ void MotionHVWindow::create_objects() // y, // _("Rotation block size:\n(W/H Percent of image)"))); // add_subwindow(rotation_block_w = new BlockSize(plugin, -// x2 + title->get_w() + 10, +// x2 + title->get_w() + xs10, // y, // &plugin->config.rotation_block_w)); // add_subwindow(rotation_block_h = new BlockSize(plugin, -// x2 + title->get_w() + 10 + rotation_block_w->get_w(), +// x2 + title->get_w() + xs10 + rotation_block_w->get_w(), // y, // &plugin->config.rotation_block_h)); -// y += 50; +// y += ys50; // add_subwindow(title = new BC_Title(x1, y, _("Translation search steps:"))); // add_subwindow(global_search_positions = new GlobalSearchPositions(plugin, -// x1 + title->get_w() + 10, +// x1 + title->get_w() + xs10, // y, -// 80)); +// xs80)); // global_search_positions->create_objects(); // // add_subwindow(title = new BC_Title(x2, y, _("Rotation search steps:"))); // add_subwindow(rotation_search_positions = new RotationSearchPositions(plugin, -// x2 + title->get_w() + 10, +// x2 + title->get_w() + xs10, // y, -// 80)); +// xs80)); // rotation_search_positions->create_objects(); - y += 50; + y += ys50; add_subwindow(title = new BC_Title(x, y, _("Translation direction:"))); add_subwindow(track_direction = new TrackDirection(plugin, this, - x + title->get_w() + 10, + x + title->get_w() + xs10, y)); track_direction->create_objects(); - y += 40; - add_subwindow(title = new BC_Title(x, y + 10, _("Block X:"))); + y += ys40; + add_subwindow(title = new BC_Title(x, y + ys10, _("Block X:"))); add_subwindow(block_x = new MotionHVBlockX(plugin, this, - x + title->get_w() + 10, + x + title->get_w() + xs10, y)); add_subwindow(block_x_text = new MotionHVBlockXText(plugin, this, - x + title->get_w() + 10 + block_x->get_w() + 10, - y + 10)); + x + title->get_w() + xs10 + block_x->get_w() + xs10, + y + ys10)); add_subwindow(title = new BC_Title(x2, y, _("Rotation center:"))); add_subwindow(rotation_center = new RotationCenter(plugin, - x2 + title->get_w() + 10, + x2 + title->get_w() + xs10, y)); int y1 = y; - y += 50; - add_subwindow(title = new BC_Title(x2, y + 10, _("Maximum angle offset:"))); + y += ys50; + add_subwindow(title = new BC_Title(x2, y + ys10, _("Maximum angle offset:"))); add_subwindow(rotate_magnitude = new MotionHVRMagnitude(plugin, - x2 + title->get_w() + 10, + x2 + title->get_w() + xs10, y)); - y += 40; - add_subwindow(title = new BC_Title(x2, y + 10, _("Rotation settling speed:"))); + y += ys40; + add_subwindow(title = new BC_Title(x2, y + ys10, _("Rotation settling speed:"))); add_subwindow(rotate_return_speed = new MotionHVRReturnSpeed(plugin, - x2 + title->get_w() + 10, + x2 + title->get_w() + xs10, y)); y = y1; - y += 40; - add_subwindow(title = new BC_Title(x, y + 10, _("Block Y:"))); + y += ys40; + add_subwindow(title = new BC_Title(x, y + ys10, _("Block Y:"))); add_subwindow(block_y = new MotionHVBlockY(plugin, this, - x + title->get_w() + 10, + x + title->get_w() + xs10, y)); add_subwindow(block_y_text = new MotionHVBlockYText(plugin, this, - x + title->get_w() + 10 + block_y->get_w() + 10, - y + 10)); + x + title->get_w() + xs10 + block_y->get_w() + xs10, + y + ys10)); - y += 50; - add_subwindow(title = new BC_Title(x, y + 10, _("Maximum absolute offset:"))); + y += ys50; + add_subwindow(title = new BC_Title(x, y + ys10, _("Maximum absolute offset:"))); add_subwindow(magnitude = new MotionHVMagnitude(plugin, - x + title->get_w() + 10, + x + title->get_w() + xs10, y)); - y += 40; - add_subwindow(title = new BC_Title(x, y + 10, _("MotionHV settling speed:"))); + y += ys40; + add_subwindow(title = new BC_Title(x, y + ys10, _("MotionHV settling speed:"))); add_subwindow(return_speed = new MotionHVReturnSpeed(plugin, - x + title->get_w() + 10, + x + title->get_w() + xs10, y)); - y += 40; + y += ys40; add_subwindow(vectors = new MotionHVDrawVectors(plugin, this, x, y)); - y += 40; + y += ys40; add_subwindow(track_single = new TrackSingleFrame(plugin, this, x, y)); - add_subwindow(title = new BC_Title(x + track_single->get_w() + 20, + add_subwindow(title = new BC_Title(x + track_single->get_w() + xs20, y, _("Frame number:"))); add_subwindow(track_frame_number = new TrackFrameNumber(plugin, this, - x + track_single->get_w() + title->get_w() + 20, + x + track_single->get_w() + title->get_w() + xs20, y)); if(plugin->config.tracking_object != MotionHVScan::TRACK_SINGLE) track_frame_number->disable(); - y += 20; + y += ys20; add_subwindow(track_previous = new TrackPreviousFrame(plugin, this, x, y)); - y += 20; + y += ys20; add_subwindow(previous_same = new PreviousFrameSameBlock(plugin, this, x, y)); - y += 40; + y += ys40; y1 = y; add_subwindow(title = new BC_Title(x, y, _("Master layer:"))); add_subwindow(master_layer = new MasterLayer(plugin, this, - x + title->get_w() + 10, + x + title->get_w() + xs10, y)); master_layer->create_objects(); - y += 30; + y += ys30; add_subwindow(title = new BC_Title(x, y, _("Action:"))); add_subwindow(action_type = new ActionType(plugin, this, - x + title->get_w() + 10, + x + title->get_w() + xs10, y)); action_type->create_objects(); - y += 30; + y += ys30; @@ -249,7 +251,7 @@ void MotionHVWindow::create_objects() add_subwindow(title = new BC_Title(x, y, _("Calculation:"))); add_subwindow(tracking_type = new TrackingType(plugin, this, - x + title->get_w() + 10, + x + title->get_w() + xs10, y)); tracking_type->create_objects(); @@ -656,10 +658,7 @@ MotionHVBlockXText::MotionHVBlockXText(MotionHVMain *plugin, MotionHVWindow *gui, int x, int y) - : BC_TextBox(x, - y, - 75, - 1, + : BC_TextBox(x, y, xS(75), 1, (float)plugin->config.block_x) { this->plugin = plugin; @@ -682,10 +681,7 @@ MotionHVBlockYText::MotionHVBlockYText(MotionHVMain *plugin, MotionHVWindow *gui, int x, int y) - : BC_TextBox(x, - y, - 75, - 1, + : BC_TextBox(x, y, xS(75), 1, (float)plugin->config.block_y) { this->plugin = plugin; @@ -777,7 +773,7 @@ TrackFrameNumber::TrackFrameNumber(MotionHVMain *plugin, MotionHVWindow *gui, int x, int y) - : BC_TextBox(x, y, 100, 1, plugin->config.track_frame) + : BC_TextBox(x, y, xS(100), 1, plugin->config.track_frame) { this->plugin = plugin; this->gui = gui; @@ -893,7 +889,7 @@ int MasterLayer::calculate_w(MotionHVWindow *gui) int result = 0; result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(0))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(1))); - return result + 50; + return result + xS(50); } @@ -965,7 +961,7 @@ int ActionType::calculate_w(MotionHVWindow *gui) result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(MotionHVScan::STABILIZE))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(MotionHVScan::STABILIZE_PIXEL))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(MotionHVScan::NOTHING))); - return result + 50; + return result + xS(50); } @@ -1029,7 +1025,7 @@ int TrackingType::calculate_w(MotionHVWindow *gui) result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(MotionHVScan::CALCULATE))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(MotionHVScan::SAVE))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(MotionHVScan::LOAD))); - return result + 50; + return result + xS(50); } @@ -1086,6 +1082,6 @@ int TrackDirection::calculate_w(MotionHVWindow *gui) result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(1, 0))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(0, 1))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(0, 0))); - return result + 50; + return result + xS(50); } diff --git a/cinelerra-5.1/plugins/motion/motionwindow.C b/cinelerra-5.1/plugins/motion/motionwindow.C index b8930e20..e799aee6 100644 --- a/cinelerra-5.1/plugins/motion/motionwindow.C +++ b/cinelerra-5.1/plugins/motion/motionwindow.C @@ -32,7 +32,7 @@ #include "pluginserver.h" MotionWindow::MotionWindow(MotionMain *plugin) - : PluginClientWindow(plugin, 800, 640, 800, 640, 0) + : PluginClientWindow(plugin, xS(800), yS(640), xS(800), yS(640), 0) { this->plugin = plugin; } @@ -43,36 +43,38 @@ MotionWindow::~MotionWindow() void MotionWindow::create_objects() { - int x = 10, y = 10; + int xs5 = xS(5), xs10 = xS(10), xs20 = xS(20), xs50 = xS(50), xs120 = xS(120); + int ys10 = yS(10), ys20 = yS(20), ys50 = yS(50), ys30 = yS(30), ys40 = yS(40), ys60 = yS(60); + int x = xs10, y = ys10; int x1 = x, x2 = get_w() / 2; BC_Title *title; add_subwindow(global = new MotionGlobal(plugin, this, x1, y)); add_subwindow(rotate = new MotionRotate(plugin, this, x2, y)); - y += 50; + y += ys50; add_subwindow(title = new BC_Title(x1, y, _("Translation search radius:\n(W/H Percent of image)"))); add_subwindow(global_range_w = new GlobalRange(plugin, - x1 + title->get_w() + 10, y, + x1 + title->get_w() + xs10, y, &plugin->config.global_range_w)); add_subwindow(global_range_h = new GlobalRange(plugin, - x1 + title->get_w() + 10 + global_range_w->get_w(), y, + x1 + title->get_w() + xs10 + global_range_w->get_w(), y, &plugin->config.global_range_h)); add_subwindow(title = new BC_Title(x2, y, _("Rotation search radius:\n(Degrees)"))); add_subwindow(rotation_range = new RotationRange(plugin, - x2 + title->get_w() + 10, y)); + x2 + title->get_w() + xs10, y)); - y += 50; + y += ys50; add_subwindow(title = new BC_Title(x1, y, _("Translation block size:\n(W/H Percent of image)"))); add_subwindow(global_block_w = - new BlockSize(plugin, x1 + title->get_w() + 10, y, + new BlockSize(plugin, x1 + title->get_w() + xs10, y, &plugin->config.global_block_w)); add_subwindow(global_block_h = - new BlockSize(plugin, x1 + title->get_w() + 10 + + new BlockSize(plugin, x1 + title->get_w() + xs10 + global_block_w->get_w(), y, &plugin->config.global_block_h)); @@ -80,93 +82,93 @@ void MotionWindow::create_objects() // y, // _("Rotation block size:\n(W/H Percent of image)"))); // add_subwindow(rotation_block_w = new BlockSize(plugin, -// x2 + title->get_w() + 10, +// x2 + title->get_w() + xs10, // y, // &plugin->config.rotation_block_w)); // add_subwindow(rotation_block_h = new BlockSize(plugin, -// x2 + title->get_w() + 10 + rotation_block_w->get_w(), +// x2 + title->get_w() + xs10 + rotation_block_w->get_w(), // y, // &plugin->config.rotation_block_h)); - y += 50; + y += ys50; add_subwindow(title = new BC_Title(x1, y, _("Translation search steps:"))); add_subwindow(global_search_positions = - new GlobalSearchPositions(plugin, x1 + title->get_w() + 10, y, 80)); + new GlobalSearchPositions(plugin, x1 + title->get_w() + xs10, y, xs120)); global_search_positions->create_objects(); add_subwindow(title = new BC_Title(x2, y, _("Rotation search steps:"))); add_subwindow(rotation_search_positions = - new RotationSearchPositions(plugin, x2 + title->get_w() + 10, y, 80)); + new RotationSearchPositions(plugin, x2 + title->get_w() + xs10, y, xs120)); rotation_search_positions->create_objects(); - y += 50; + y += ys50; add_subwindow(title = new BC_Title(x, y, _("Translation direction:"))); add_subwindow(track_direction = new TrackDirection(plugin, this, - x + title->get_w() + 10, + x + title->get_w() + xs10, y)); track_direction->create_objects(); - y += 40; + y += ys40; add_subwindow(title = new BC_Title(x2, y, _("Tracking file:"))); add_subwindow(tracking_file = new MotionTrackingFile(plugin, - plugin->config.tracking_file, this, x2+title->get_w() + 20, y)); + plugin->config.tracking_file, this, x2+title->get_w() + xs20, y)); int y1 = y; - add_subwindow(title = new BC_Title(x, y + 10, _("Block X:"))); + add_subwindow(title = new BC_Title(x, y + ys10, _("Block X:"))); add_subwindow(block_x = - new MotionBlockX(plugin, this, x + title->get_w() + 10, y)); + new MotionBlockX(plugin, this, x + title->get_w() + xs10, y)); add_subwindow(block_x_text = new MotionBlockXText(plugin, this, - x + title->get_w() + 10 + block_x->get_w() + 10, y + 10)); + x + title->get_w() + xs10 + block_x->get_w() + xs10, y + ys10)); - y += 40; + y += ys40; add_subwindow(title = new BC_Title(x2, y, _("Rotation center:"))); add_subwindow(rotation_center = - new RotationCenter(plugin, x2 + title->get_w() + 10, y)); + new RotationCenter(plugin, x2 + title->get_w() + xs10, y)); - y += 40; - add_subwindow(title = new BC_Title(x2, y + 10, _("Maximum angle offset:"))); + y += ys40; + add_subwindow(title = new BC_Title(x2, y + ys10, _("Maximum angle offset:"))); add_subwindow(rotate_magnitude = - new MotionRMagnitude(plugin, x2 + title->get_w() + 10, y)); + new MotionRMagnitude(plugin, x2 + title->get_w() + xs10, y)); - y += 40; - add_subwindow(title = new BC_Title(x2, y + 10, _("Rotation settling speed:"))); + y += ys40; + add_subwindow(title = new BC_Title(x2, y + ys10, _("Rotation settling speed:"))); add_subwindow(rotate_return_speed = - new MotionRReturnSpeed(plugin, x2 + title->get_w() + 10, y)); - y += 40; + new MotionRReturnSpeed(plugin, x2 + title->get_w() + xs10, y)); + y += ys40; add_subwindow(vectors = new MotionDrawVectors(plugin, this, x2, y)); - y = y1 + 60; - add_subwindow(title = new BC_Title(x, y + 10, _("Block Y:"))); + y = y1 + ys60; + add_subwindow(title = new BC_Title(x, y + ys10, _("Block Y:"))); add_subwindow(block_y = - new MotionBlockY(plugin, this, x + title->get_w() + 10, y)); + new MotionBlockY(plugin, this, x + title->get_w() + xs10, y)); add_subwindow(block_y_text = new MotionBlockYText(plugin, this, - x + title->get_w() + 10 + block_y->get_w() + 10, y + 10)); + x + title->get_w() + xs10 + block_y->get_w() + xs10, y + ys10)); - y += 50; - add_subwindow(title = new BC_Title(x, y + 10, _("Maximum absolute offset:"))); + y += ys50; + add_subwindow(title = new BC_Title(x, y + ys10, _("Maximum absolute offset:"))); add_subwindow(magnitude = new MotionMagnitude(plugin, - x + title->get_w() + 10, + x + title->get_w() + xs10, y)); - y += 40; - add_subwindow(title = new BC_Title(x, y + 10, _("Motion settling speed:"))); + y += ys40; + add_subwindow(title = new BC_Title(x, y + ys10, _("Motion settling speed:"))); add_subwindow(return_speed = - new MotionReturnSpeed(plugin, x + title->get_w() + 10, y)); + new MotionReturnSpeed(plugin, x + title->get_w() + xs10, y)); - y += 40; + y += ys40; add_subwindow(track_single = new TrackSingleFrame(plugin, this, x, y)); - y += 20; + y += ys20; add_subwindow(track_previous = new TrackPreviousFrame(plugin, this, x, y)); - y += 20; + y += ys20; add_subwindow(previous_same = new PreviousFrameSameBlock(plugin, this, x, y)); - y += 40; + y += ys40; x1 = x; y1 = y; add_subwindow(title = new BC_Title(x1=x2, y1, _("Frame number:"))); @@ -178,7 +180,7 @@ void MotionWindow::create_objects() add_subwindow(addtrackedframeoffset = new AddTrackedFrameOffset(plugin, this, x1=x2, y1+=track_frame_number->get_h())); int pef = client->server->mwindow->edl->session->video_every_frame; - add_subwindow(pef_title = new BC_Title(x1=x2+50, y1+=addtrackedframeoffset->get_h() + 5, + add_subwindow(pef_title = new BC_Title(x1=x2+xs50, y1+=addtrackedframeoffset->get_h() + xs5, !pef ? _("For best results\n" " Set: Play every frame\n" " Preferences-> Playback-> Video Out") : @@ -187,19 +189,19 @@ void MotionWindow::create_objects() add_subwindow(title = new BC_Title(x, y, _("Master layer:"))); add_subwindow(master_layer = new MasterLayer(plugin, - this, x + title->get_w() + 10, y)); + this, x + title->get_w() + xs10, y)); master_layer->create_objects(); - y += 30; + y += ys30; add_subwindow(title = new BC_Title(x, y, _("Action:"))); add_subwindow(action_type = new ActionType(plugin, - this, x + title->get_w() + 10, y)); + this, x + title->get_w() + xs10, y)); action_type->create_objects(); - y += 30; + y += ys30; add_subwindow(title = new BC_Title(x, y, _("Calculation:"))); add_subwindow(tracking_type = new TrackingType(plugin, - this, x + title->get_w() + 10, y)); + this, x + title->get_w() + xs10, y)); tracking_type->create_objects(); show_window(1); @@ -222,7 +224,7 @@ void MotionWindow::update_mode() MotionTrackingFile::MotionTrackingFile(MotionMain *plugin, const char *filename, MotionWindow *gui, int x, int y) - : BC_TextBox(x, y, 150, 1, filename) + : BC_TextBox(x, y, xS(150), 1, filename) { this->plugin = plugin; this->gui = gui; @@ -522,7 +524,7 @@ int MotionBlockY::handle_event() MotionBlockXText::MotionBlockXText(MotionMain *plugin, MotionWindow *gui, int x, int y) - : BC_TextBox(x, y, 75, 1, (float)plugin->config.block_x) + : BC_TextBox(x, y, xS(75), 1, (float)plugin->config.block_x) { this->plugin = plugin; this->gui = gui; @@ -542,7 +544,7 @@ int MotionBlockXText::handle_event() MotionBlockYText::MotionBlockYText(MotionMain *plugin, MotionWindow *gui, int x, int y) - : BC_TextBox(x, y, 75, 1, (float)plugin->config.block_y) + : BC_TextBox(x, y, xS(75), 1, (float)plugin->config.block_y) { this->plugin = plugin; this->gui = gui; @@ -604,7 +606,7 @@ TrackFrameNumber::TrackFrameNumber(MotionMain *plugin, MotionWindow *gui, int x, int y) - : BC_TextBox(x, y, 100, 1, plugin->config.track_frame) + : BC_TextBox(x, y, xS(100), 1, plugin->config.track_frame) { this->plugin = plugin; this->gui = gui; @@ -703,7 +705,7 @@ int MasterLayer::calculate_w(MotionWindow *gui) int result = 0; result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(0))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(1))); - return result + 50; + return result + xS(80); } @@ -769,7 +771,7 @@ int ActionType::calculate_w(MotionWindow *gui) result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(MotionScan::STABILIZE))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(MotionScan::STABILIZE_PIXEL))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(MotionScan::NOTHING))); - return result + 50; + return result + xS(80); } @@ -826,7 +828,7 @@ int TrackingType::calculate_w(MotionWindow *gui) result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(MotionScan::CALCULATE))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(MotionScan::SAVE))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(MotionScan::LOAD))); - return result + 50; + return result + xS(80); } @@ -875,6 +877,6 @@ int TrackDirection::calculate_w(MotionWindow *gui) result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(1, 0))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(0, 1))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(0, 0))); - return result + 50; + return result + xS(80); } diff --git a/cinelerra-5.1/plugins/motion2point/motionwindow.C b/cinelerra-5.1/plugins/motion2point/motionwindow.C index 8b330724..069da37f 100644 --- a/cinelerra-5.1/plugins/motion2point/motionwindow.C +++ b/cinelerra-5.1/plugins/motion2point/motionwindow.C @@ -37,7 +37,7 @@ MotionWindow::MotionWindow(MotionMain2 *plugin) - : PluginClientWindow(plugin, 680, 660, 680, 660, 0) + : PluginClientWindow(plugin, xS(680), yS(660), xS(680), yS(660), 0) { this->plugin = plugin; } @@ -48,8 +48,10 @@ MotionWindow::~MotionWindow() void MotionWindow::create_objects() { + int xs10 = xS(10), xs20 = xS(20), xs120 = xS(120); + int ys10 = yS(10), ys20 = yS(20), ys30 = yS(30), ys40 = yS(40), ys50 = yS(50); int x1[] = { 10, get_w()/2 }; - int x = 10, y = 10, y1 = 10; + int x = xs10, y = ys10, y1 = ys10; BC_Title *title; @@ -67,88 +69,88 @@ void MotionWindow::create_objects() y, &plugin->config.global[i], global_title[i])); - y += 50; + y += yS(50); add_subwindow(title = new BC_Title(x1[i], y, _("Translation search radius:\n(W/H Percent of image)"))); add_subwindow(global_range_w[i] = new MotionPot(plugin, - x1[i] + title->get_w() + 10, + x1[i] + title->get_w() + xs10, y, &plugin->config.global_range_w[i], MIN_RADIUS, MAX_RADIUS)); add_subwindow(global_range_h[i] = new MotionPot(plugin, - x1[i] + title->get_w() + 10 + global_range_w[i]->get_w(), + x1[i] + title->get_w() + xs10 + global_range_w[i]->get_w(), y, &plugin->config.global_range_h[i], MIN_RADIUS, MAX_RADIUS)); - y += 50; + y += ys50; add_subwindow(title = new BC_Title(x1[i], y, _("Translation search offset:\n(X/Y Percent of image)"))); add_subwindow(global_origin_x[i] = new MotionPot(plugin, - x1[i] + title->get_w() + 10, + x1[i] + title->get_w() + xs10, y, &plugin->config.global_origin_x[i], MIN_ORIGIN, MAX_ORIGIN)); add_subwindow(global_origin_y[i] = new MotionPot(plugin, - x1[i] + title->get_w() + 10 + global_origin_x[i]->get_w(), + x1[i] + title->get_w() + xs10 + global_origin_x[i]->get_w(), y, &plugin->config.global_origin_y[i], MIN_ORIGIN, MAX_ORIGIN)); - y += 50; + y += ys50; add_subwindow(title = new BC_Title(x1[i], y, _("Translation block size:\n(W/H Percent of image)"))); add_subwindow(global_block_w[i] = new MotionPot(plugin, - x1[i] + title->get_w() + 10, + x1[i] + title->get_w() + xs10, y, &plugin->config.global_block_w[i], MIN_BLOCK, MAX_BLOCK)); add_subwindow(global_block_h[i] = new MotionPot(plugin, - x1[i] + title->get_w() + 10 + global_block_w[i]->get_w(), + x1[i] + title->get_w() + xs10 + global_block_w[i]->get_w(), y, &plugin->config.global_block_h[i], MIN_BLOCK, MAX_BLOCK)); - y += 40; - add_subwindow(title = new BC_Title(x1[i], y + 10, _("Block X:"))); + y += ys40; + add_subwindow(title = new BC_Title(x1[i], y + ys10, _("Block X:"))); add_subwindow(block_x[i] = new MotionBlockX(plugin, this, - x1[i] + title->get_w() + 10, + x1[i] + title->get_w() + xs10, y, i)); add_subwindow(block_x_text[i] = new MotionBlockXText(plugin, this, - x1[i] + title->get_w() + 10 + block_x[i]->get_w() + 10, - y + 10, + x1[i] + title->get_w() + xs10 + block_x[i]->get_w() + xs10, + y + ys10, i)); - y += 40; - add_subwindow(title = new BC_Title(x1[i], y + 10, _("Block Y:"))); + y += ys40; + add_subwindow(title = new BC_Title(x1[i], y + ys10, _("Block Y:"))); add_subwindow(block_y[i] = new MotionBlockY(plugin, this, - x1[i] + title->get_w() + 10, + x1[i] + title->get_w() + xs10, y, i)); add_subwindow(block_y_text[i] = new MotionBlockYText(plugin, this, - x1[i] + title->get_w() + 10 + block_y[i]->get_w() + 10, - y + 10, + x1[i] + title->get_w() + xs10 + block_y[i]->get_w() + xs10, + y + ys10, i)); - y += 40; + y += ys40; add_subwindow(vectors[i] = new MotionDrawVectors(plugin, this, x1[i], @@ -157,82 +159,80 @@ void MotionWindow::create_objects() } - y += 30; + y += ys30; add_subwindow(new BC_Bar(x, y, get_w() - x * 2)); - y += 10; + y += ys10; add_subwindow(title = new BC_Title(x, y, _("Search steps:"))); add_subwindow(global_search_positions = new GlobalSearchPositions(plugin, - x + title->get_w() + 10, - y, - 80)); + x + title->get_w() + xs10, y, xs120)); global_search_positions->create_objects(); - y += 30; + y += ys30; add_subwindow(title = new BC_Title(x, y, _("Search directions:"))); add_subwindow(tracking_direction = new TrackingDirection(plugin, this, - x + title->get_w() + 10, + x + title->get_w() + xs10, y)); tracking_direction->create_objects(); - y += 30; - add_subwindow(title = new BC_Title(x, y + 10, _("Maximum absolute offset:"))); + y += ys30; + add_subwindow(title = new BC_Title(x, y + ys10, _("Maximum absolute offset:"))); add_subwindow(magnitude = new MotionMagnitude(plugin, - x + title->get_w() + 10, + x + title->get_w() + xs10, y)); - y += 40; - add_subwindow(title = new BC_Title(x, y + 10, _("Settling speed:"))); + y += ys40; + add_subwindow(title = new BC_Title(x, y + ys10, _("Settling speed:"))); add_subwindow(return_speed = new MotionReturnSpeed(plugin, - x + title->get_w() + 10, + x + title->get_w() + xs10, y)); - y += 40; + y += ys40; add_subwindow(track_single = new TrackSingleFrame(plugin, this, x, y)); - add_subwindow(title = new BC_Title(x + track_single->get_w() + 20, + add_subwindow(title = new BC_Title(x + track_single->get_w() + xs20, y, _("Frame number:"))); add_subwindow(track_frame_number = new TrackFrameNumber(plugin, this, - x + track_single->get_w() + title->get_w() + 20, + x + track_single->get_w() + title->get_w() + xs20, y)); if(plugin->config.tracking_object != MotionScan::TRACK_SINGLE) track_frame_number->disable(); - y += 20; + y += ys20; add_subwindow(track_previous = new TrackPreviousFrame(plugin, this, x, y)); - y += 20; + y += ys20; add_subwindow(previous_same = new PreviousFrameSameBlock(plugin, this, x, y)); - y += 40; + y += ys40; y1 = y; add_subwindow(title = new BC_Title(x, y, _("Master layer:"))); add_subwindow(master_layer = new MasterLayer(plugin, this, - x + title->get_w() + 10, + x + title->get_w() + xs10, y)); master_layer->create_objects(); - y += 30; + y += ys30; add_subwindow(title = new BC_Title(x, y, _("Action:"))); add_subwindow(action = new Action(plugin, this, - x + title->get_w() + 10, + x + title->get_w() + xs10, y)); action->create_objects(); - y += 30; + y += ys30; @@ -240,7 +240,7 @@ void MotionWindow::create_objects() add_subwindow(title = new BC_Title(x, y, _("Calculation:"))); add_subwindow(calculation = new Calculation(plugin, this, - x + title->get_w() + 10, + x + title->get_w() + xs10, y)); calculation->create_objects(); @@ -486,10 +486,7 @@ MotionBlockXText::MotionBlockXText(MotionMain2 *plugin, int x, int y, int number) - : BC_TextBox(x, - y, - 75, - 1, + : BC_TextBox(x, y, xS(75), 1, (float)plugin->config.block_x[number]) { this->plugin = plugin; @@ -514,10 +511,7 @@ MotionBlockYText::MotionBlockYText(MotionMain2 *plugin, int x, int y, int number) - : BC_TextBox(x, - y, - 75, - 1, + : BC_TextBox(x, y, xS(75), 1, (float)plugin->config.block_y[number]) { this->plugin = plugin; @@ -612,7 +606,7 @@ TrackFrameNumber::TrackFrameNumber(MotionMain2 *plugin, MotionWindow *gui, int x, int y) - : BC_TextBox(x, y, 100, 1, plugin->config.track_frame) + : BC_TextBox(x, y, xS(100), 1, plugin->config.track_frame) { this->plugin = plugin; this->gui = gui; @@ -728,7 +722,7 @@ int MasterLayer::calculate_w(MotionWindow *gui) int result = 0; result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(0))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(1))); - return result + 50; + return result + xS(80); } @@ -807,7 +801,7 @@ int Action::calculate_w(MotionWindow *gui) result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(MotionScan::STABILIZE))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(MotionScan::STABILIZE_PIXEL))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(MotionScan::NOTHING))); - return result + 50; + return result + xS(80); } @@ -877,7 +871,7 @@ int Calculation::calculate_w(MotionWindow *gui) result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(MotionScan::CALCULATE))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(MotionScan::SAVE))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(MotionScan::LOAD))); - return result + 50; + return result + xS(80); } @@ -934,6 +928,6 @@ int TrackingDirection::calculate_w(MotionWindow *gui) result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(1, 0))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(0, 1))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(0, 0))); - return result + 50; + return result + xS(80); } diff --git a/cinelerra-5.1/plugins/motion51/motionwindow51.C b/cinelerra-5.1/plugins/motion51/motionwindow51.C index 96bb6821..c84305bf 100644 --- a/cinelerra-5.1/plugins/motion51/motionwindow51.C +++ b/cinelerra-5.1/plugins/motion51/motionwindow51.C @@ -32,7 +32,7 @@ #include "pluginserver.h" Motion51Window::Motion51Window(Motion51Main *plugin) - : PluginClientWindow(plugin, 600, 400, 600, 400, 0) + : PluginClientWindow(plugin, xS(600), yS(400), xS(600), yS(400), 0) { this->plugin = plugin; } @@ -43,62 +43,64 @@ Motion51Window::~Motion51Window() void Motion51Window::create_objects() { - int x = 10, y = 20; + int xs10 = xS(10), xs30 = xS(30), xs120 = xS(120); + int ys5 = yS(5), ys10 = yS(10), ys20 = yS(20); + int x = xs10, y = ys20, xs72 = xS(72); int x0 = x, x1 = get_w()/2; - add_subwindow(sample_steps = new Motion51SampleSteps(plugin, x0=x, y, 120)); - BC_Title *title = new BC_Title(x0+=sample_steps->get_w()+10, y, _("Samples")); + add_subwindow(sample_steps = new Motion51SampleSteps(plugin, x0=x, y, xs120)); + BC_Title *title = new BC_Title(x0+=sample_steps->get_w()+xs10, y, _("Samples")); add_subwindow(title); sample_steps->create_objects(); sample_r = new Motion51Limits(plugin, this, x1,y, _("Sample Radius%"), - &plugin->config.sample_r, 0.f,100.f, 72); + &plugin->config.sample_r, 0.f,100.f, xs72); sample_r->create_objects(); - y += sample_r->get_h() + 20; + y += sample_r->get_h() + ys20; block_x = new Motion51Limits(plugin, this, x0=x,y, _("Center X%"), - &plugin->config.block_x, 0.f, 100.f, 72); + &plugin->config.block_x, 0.f, 100.f, xs72); block_x->create_objects(); block_y = new Motion51Limits(plugin, this, x1,y, _("Center Y%"), - &plugin->config.block_y, 0.f, 100.f, 72); + &plugin->config.block_y, 0.f, 100.f, xs72); block_y->create_objects(); - y += block_x->get_h() + 10; + y += block_x->get_h() + ys10; block_w = new Motion51Limits(plugin, this, x0,y, _("Search W%"), - &plugin->config.block_w, 0.f,100.f, 72); + &plugin->config.block_w, 0.f,100.f, xs72); block_w->create_objects(); block_h = new Motion51Limits(plugin, this, x1,y, _("Search H%"), - &plugin->config.block_h, 0.f,100.f, 72); + &plugin->config.block_h, 0.f,100.f, xs72); block_h->create_objects(); - y += block_w->get_h() + 10; + y += block_w->get_h() + ys10; horiz_limit = new Motion51Limits(plugin, this, x0=x,y, _("Horiz shake limit%"), - &plugin->config.horiz_limit, 0.f, 75.f, 72); + &plugin->config.horiz_limit, 0.f, 75.f, xs72); horiz_limit->create_objects(); shake_fade = new Motion51Limits(plugin, this, x1,y, _("Shake fade%"), - &plugin->config.shake_fade, 0.f, 75.f, 72); + &plugin->config.shake_fade, 0.f, 75.f, xs72); shake_fade->create_objects(); - y += horiz_limit->get_h() + 10; + y += horiz_limit->get_h() + ys10; vert_limit = new Motion51Limits(plugin, this, x0,y, _("Vert shake limit%"), - &plugin->config.vert_limit, 0.f, 75.f, 72); + &plugin->config.vert_limit, 0.f, 75.f, xs72); vert_limit->create_objects(); - y += vert_limit->get_h() + 10; + y += vert_limit->get_h() + ys10; twist_limit = new Motion51Limits(plugin, this, x0,y, _("Twist limit%"), - &plugin->config.twist_limit, 0.f, 75.f, 72); + &plugin->config.twist_limit, 0.f, 75.f, xs72); twist_limit->create_objects(); twist_fade = new Motion51Limits(plugin, this, x1,y, _("Twist fade%"), - &plugin->config.twist_fade, 0.f, 75.f, 72); + &plugin->config.twist_fade, 0.f, 75.f, xs72); twist_fade->create_objects(); - y += twist_fade->get_h() + 20; + y += twist_fade->get_h() + ys20; add_subwindow(draw_vectors = new Motion51DrawVectors(plugin, this, x, y)); add_subwindow(title = new BC_Title(x1, y, _("Tracking file:"))); - y += draw_vectors->get_h() + 5; + y += draw_vectors->get_h() + ys5; add_subwindow(enable_tracking = new Motion51EnableTracking(plugin, this, x, y)); add_subwindow(tracking_file = new Motion51TrackingFile(plugin, - plugin->config.tracking_file, this, x1, y, get_w()-30-x1)); - y += enable_tracking->get_h() + 20; + plugin->config.tracking_file, this, x1, y, get_w()-xs30-x1)); + y += enable_tracking->get_h() + ys20; add_subwindow(reset_config = new Motion51ResetConfig(plugin, this, x0=x, y)); add_subwindow(reset_tracking = new Motion51ResetTracking(plugin, this, x1, y)); - y += reset_config->get_h()+20; + y += reset_config->get_h()+ys20; int pef = client->server->mwindow->edl->session->video_every_frame; add_subwindow(pef_title = new BC_Title(x, y, @@ -154,7 +156,7 @@ Motion51Limits::~Motion51Limits() void Motion51Limits::create_objects() { BC_TumbleTextBox::create_objects(); - int tx = BC_TumbleTextBox::get_x() + BC_TumbleTextBox::get_w() + 5; + int tx = BC_TumbleTextBox::get_x() + BC_TumbleTextBox::get_w() + xS(5); int ty = BC_TumbleTextBox::get_y(); gui->add_subwindow(title = new BC_Title(tx,ty,ttext)); } diff --git a/cinelerra-5.1/plugins/motionblur/motionblur.C b/cinelerra-5.1/plugins/motionblur/motionblur.C index aac86d25..ee86e2b2 100644 --- a/cinelerra-5.1/plugins/motionblur/motionblur.C +++ b/cinelerra-5.1/plugins/motionblur/motionblur.C @@ -231,10 +231,10 @@ void MotionBlurConfig::interpolate(MotionBlurConfig &prev, MotionBlurWindow::MotionBlurWindow(MotionBlurMain *plugin) : PluginClientWindow(plugin, - 260, - 120, - 260, - 120, + xS(260), + yS(120), + xS(260), + yS(120), 0) { this->plugin = plugin; @@ -246,14 +246,16 @@ MotionBlurWindow::~MotionBlurWindow() void MotionBlurWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10); + int ys10 = yS(10), ys20 = yS(20), ys30 = yS(30); + int x = xs10, y = ys10; add_subwindow(new BC_Title(x, y, _("Length:"))); - y += 20; + y += ys20; add_subwindow(radius = new MotionBlurSize(plugin, x, y, &plugin->config.radius, 0, 100)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Steps:"))); - y += 20; + y += ys20; add_subwindow(steps = new MotionBlurSize(plugin, x, y, &plugin->config.steps, 1, 100)); show_window(); @@ -270,7 +272,7 @@ MotionBlurSize::MotionBlurSize(MotionBlurMain *plugin, int *output, int min, int max) - : BC_ISlider(x, y, 0, 240, 240, min, max, *output) + : BC_ISlider(x, y, 0, xS(240), yS(240), min, max, *output) { this->plugin = plugin; this->output = output; diff --git a/cinelerra-5.1/plugins/moveobj/moveobjwindow.C b/cinelerra-5.1/plugins/moveobj/moveobjwindow.C index aac65d69..c85b94b2 100644 --- a/cinelerra-5.1/plugins/moveobj/moveobjwindow.C +++ b/cinelerra-5.1/plugins/moveobj/moveobjwindow.C @@ -26,7 +26,7 @@ #include "theme.h" MoveObjWindow::MoveObjWindow(MoveObj *plugin) - : PluginClientWindow(plugin, 320, 240, 320, 240, 0) + : PluginClientWindow(plugin, xS(320), yS(240), xS(320), yS(240), 0) { this->plugin = plugin; } @@ -37,7 +37,7 @@ MoveObjWindow::~MoveObjWindow() void MoveObjWindow::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); int margin = plugin->get_theme()->widget_border; BC_Title *title; diff --git a/cinelerra-5.1/plugins/nbodycuda/nbodywindow.C b/cinelerra-5.1/plugins/nbodycuda/nbodywindow.C index c5c7766e..d5c2e9f9 100644 --- a/cinelerra-5.1/plugins/nbodycuda/nbodywindow.C +++ b/cinelerra-5.1/plugins/nbodycuda/nbodywindow.C @@ -38,7 +38,7 @@ static const char *display_modes[] = { static const int num_display_modes = sizeof(display_modes)/sizeof(*display_modes); N_BodyWindow::N_BodyWindow(N_BodyMain *plugin) - : PluginClientWindow(plugin, 240, 200, 240, 200, 0) + : PluginClientWindow(plugin, xS(240), yS(200), xS(240), yS(200), 0) { this->plugin = plugin; press_x = press_y = 0; @@ -52,8 +52,8 @@ N_BodyWindow::~N_BodyWindow() void N_BodyWindow::create_objects() { - int x = 10, y = 10, pad = 5; - int x1 = 100; + int x = xS(10), y = yS(10), pad = xS(5); + int x1 = xS(100); BC_Title *title; add_subwindow(title = new BC_Title(x,y, _("NBody"), MEDIUMFONT, YELLOW)); y += title->get_h() + 2*pad; @@ -192,7 +192,7 @@ int N_BodyDrag::handle_event() } N_BodySetMode::N_BodySetMode(N_BodyWindow *gui, int x, int y, const char *text) - : BC_PopupTextBox(gui, 0, text, x, y, 100, 160) + : BC_PopupTextBox(gui, 0, text, x, y, xS(100), yS(160)) { this->gui = gui; } @@ -215,7 +215,7 @@ int N_BodySetMode::handle_event() N_BodySetDemo::N_BodySetDemo(N_BodyWindow *gui, int x, int y, const char *text) - : BC_PopupTextBox(gui, 0, text, x, y, 100, 160) + : BC_PopupTextBox(gui, 0, text, x, y, xS(100), yS(160)) { this->gui = gui; } @@ -240,7 +240,7 @@ int N_BodySetDemo::handle_event() } N_BodyNumBodies::N_BodyNumBodies(N_BodyWindow *gui, int x, int y, const char *text) - : BC_PopupTextBox(gui, 0, text, x, y, 100, 160) + : BC_PopupTextBox(gui, 0, text, x, y, xS(100), yS(160)) { this->gui = gui; } diff --git a/cinelerra-5.1/plugins/normalize/normalizewindow.C b/cinelerra-5.1/plugins/normalize/normalizewindow.C index 2bdb20ca..463ca610 100644 --- a/cinelerra-5.1/plugins/normalize/normalizewindow.C +++ b/cinelerra-5.1/plugins/normalize/normalizewindow.C @@ -24,16 +24,8 @@ #include "normalizewindow.h" NormalizeWindow::NormalizeWindow(int x, int y) - : BC_Window(_(PROGRAM_NAME ": Normalize"), - x - 160, - y - 75, - 320, - 150, - 320, - 150, - 0, - 0, - 1) + : BC_Window(_(PROGRAM_NAME ": Normalize"), x - xS(160), y - yS(75), + xS(320), yS(150), xS(320), yS(150), 0, 0, 1) { } @@ -43,15 +35,17 @@ NormalizeWindow::~NormalizeWindow() void NormalizeWindow::create_objects(float *db_over, int *separate_tracks) { - int x = 10, y = 10; + int xs10 = xS(10); + int ys10 = yS(10), ys20 = yS(20), ys30 = yS(30); + int x = xs10, y = ys10; this->db_over = db_over; this->separate_tracks = separate_tracks; lock_window("NormalizeWindow::create_objects"); add_subwindow(new BC_Title(x, y, _("Enter the DB to overload by:"))); - y += 20; + y += ys20; add_subwindow(new NormalizeWindowOverload(x, y, this->db_over)); - y += 30; + y += ys30; add_subwindow(new NormalizeWindowSeparate(x, y, this->separate_tracks)); add_subwindow(new BC_OKButton(this)); add_subwindow(new BC_CancelButton(this)); @@ -66,7 +60,7 @@ int NormalizeWindow::close_event() } NormalizeWindowOverload::NormalizeWindowOverload(int x, int y, float *db_over) - : BC_TextBox(x, y, 200, 1, *db_over) + : BC_TextBox(x, y, xS(200), 1, *db_over) { this->db_over = db_over; } diff --git a/cinelerra-5.1/plugins/oilpainting/oil.C b/cinelerra-5.1/plugins/oilpainting/oil.C index 30d71577..0e2c039d 100644 --- a/cinelerra-5.1/plugins/oilpainting/oil.C +++ b/cinelerra-5.1/plugins/oilpainting/oil.C @@ -226,8 +226,8 @@ OilRadius::OilRadius(OilEffect *plugin, int x, int y) : BC_FSlider(x, y, 0, - 200, - 200, + xS(200), + yS(200), (float)0, (float)30, plugin->config.radius) @@ -283,10 +283,10 @@ int OilReset::handle_event() OilWindow::OilWindow(OilEffect *plugin) : PluginClientWindow(plugin, - 300, - 120, - 300, - 120, + xS(300), + yS(120), + xS(300), + yS(120), 0) { this->plugin = plugin; @@ -298,12 +298,14 @@ OilWindow::~OilWindow() void OilWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10), xs70 = xS(70); + int ys10 = yS(10), ys40 = yS(40); + int x = xs10, y = ys10; add_subwindow(new BC_Title(x, y, _("Radius:"))); - add_subwindow(radius = new OilRadius(plugin, x + 70, y)); - y += 40; + add_subwindow(radius = new OilRadius(plugin, x + xs70, y)); + y += ys40; add_subwindow(intensity = new OilIntensity(plugin, x, y)); - y += 40; + y += ys40; add_subwindow(reset = new OilReset(plugin, this, x, y)); show_window(); diff --git a/cinelerra-5.1/plugins/oilpainting/oilwindow.C b/cinelerra-5.1/plugins/oilpainting/oilwindow.C index dc64774c..99eb8ef3 100644 --- a/cinelerra-5.1/plugins/oilpainting/oilwindow.C +++ b/cinelerra-5.1/plugins/oilpainting/oilwindow.C @@ -59,14 +59,16 @@ OilWindow::~OilWindow() int OilWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10), xs50 = xS(50); + int ys10 = yS(10), ys20 = yS(20), ys50 = yS(50); + int x = xs10, y = ys10; add_tool(new BC_Title(x, y, _("Oil Painting"))); - y += 20; + y += ys20; add_tool(radius = new OilRadius(client, x, y)); - x += 50; + x += xs50; add_tool(new BC_Title(x, y, _("Radius"))); - y += 50; - x = 10; + y += ys50; + x = xs10; add_tool(use_intensity = new OilIntensity(client, x, y)); } diff --git a/cinelerra-5.1/plugins/overlay/overlay.C b/cinelerra-5.1/plugins/overlay/overlay.C index a77898f3..8bc8db56 100644 --- a/cinelerra-5.1/plugins/overlay/overlay.C +++ b/cinelerra-5.1/plugins/overlay/overlay.C @@ -184,10 +184,10 @@ const char* OverlayConfig::output_to_text(int output_layer) OverlayWindow::OverlayWindow(Overlay *plugin) : PluginClientWindow(plugin, - 300, - 160, - 300, - 160, + xS(300), + yS(160), + xS(300), + yS(160), 0) { this->plugin = plugin; @@ -199,26 +199,28 @@ OverlayWindow::~OverlayWindow() void OverlayWindow::create_objects() { - int x = 10, y = 10; + int xs5 = xS(5), xs10 = xS(10); + int ys10 = yS(10), ys30 = yS(30); + int x = xs10, y = ys10; BC_Title *title; add_subwindow(title = new BC_Title(x, y, _("Mode:"))); add_subwindow(mode = new OverlayMode(plugin, - x + title->get_w() + 5, + x + title->get_w() + xs5, y)); mode->create_objects(); - y += 30; + y += ys30; add_subwindow(title = new BC_Title(x, y, _("Layer order:"))); add_subwindow(direction = new OverlayDirection(plugin, - x + title->get_w() + 5, + x + title->get_w() + xs5, y)); direction->create_objects(); - y += 30; + y += ys30; add_subwindow(title = new BC_Title(x, y, _("Output layer:"))); add_subwindow(output = new OverlayOutput(plugin, - x + title->get_w() + 5, + x + title->get_w() + xs5, y)); output->create_objects(); @@ -233,7 +235,7 @@ void OverlayWindow::create_objects() OverlayMode::OverlayMode(Overlay *plugin, int x, int y) - : BC_PopupMenu(x, y, 150, + : BC_PopupMenu(x, y, xS(150), OverlayConfig::mode_to_text(plugin->config.mode), 1) { this->plugin = plugin; @@ -266,9 +268,7 @@ int OverlayMode::handle_event() OverlayDirection::OverlayDirection(Overlay *plugin, int x, int y) - : BC_PopupMenu(x, - y, - 150, + : BC_PopupMenu(x, y, xS(150), OverlayConfig::direction_to_text(plugin->config.direction), 1) { @@ -307,9 +307,7 @@ int OverlayDirection::handle_event() OverlayOutput::OverlayOutput(Overlay *plugin, int x, int y) - : BC_PopupMenu(x, - y, - 100, + : BC_PopupMenu(x, y, xS(100), OverlayConfig::output_to_text(plugin->config.output_layer), 1) { diff --git a/cinelerra-5.1/plugins/overlayaudio/overlayaudio.C b/cinelerra-5.1/plugins/overlayaudio/overlayaudio.C index ca9d31ec..975b3b31 100644 --- a/cinelerra-5.1/plugins/overlayaudio/overlayaudio.C +++ b/cinelerra-5.1/plugins/overlayaudio/overlayaudio.C @@ -185,10 +185,10 @@ const char* OverlayAudioConfig::mode_to_text(int mode) OverlayAudioWindow::OverlayAudioWindow(OverlayAudio *plugin) : PluginClientWindow(plugin, - 400, - 100, - 400, - 100, + xS(400), + yS(100), + xS(400), + yS(100), 0) { this->plugin = plugin; @@ -196,7 +196,7 @@ OverlayAudioWindow::OverlayAudioWindow(OverlayAudio *plugin) void OverlayAudioWindow::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); int x1 = x; BC_Title *title; add_subwindow(title = new BC_Title(x, y, _("Output track:"))); @@ -221,9 +221,7 @@ void OverlayAudioWindow::create_objects() OutputTrack::OutputTrack(OverlayAudio *plugin, int x , int y) - : BC_PopupMenu(x, - y, - 100, + : BC_PopupMenu(x, y, xS(100), OverlayAudioConfig::output_to_text(plugin->config.output_track), 1) { @@ -269,12 +267,8 @@ int OutputTrack::handle_event() -OverlayMode::OverlayMode(OverlayAudio *plugin, - int x, - int y) - : BC_PopupMenu(x, - y, - 150, +OverlayMode::OverlayMode(OverlayAudio *plugin, int x, int y) + : BC_PopupMenu(x, y, xS(150), OverlayAudioConfig::mode_to_text(plugin->config.mode), 1) { diff --git a/cinelerra-5.1/plugins/parametric/parametric.C b/cinelerra-5.1/plugins/parametric/parametric.C index f1e42e5c..ddc85229 100644 --- a/cinelerra-5.1/plugins/parametric/parametric.C +++ b/cinelerra-5.1/plugins/parametric/parametric.C @@ -231,7 +231,7 @@ int ParametricMagnitude::handle_event() ParametricMode::ParametricMode(ParametricEQ *plugin, int x, int y, int band) : BC_PopupMenu(x, y, - 150, + xS(150), mode_to_text(plugin->config.band[band].mode)) { //printf("ParametricMode::ParametricMode %d %d\n", band, plugin->config.band[band].mode); @@ -311,10 +311,10 @@ ParametricBandGUI::~ParametricBandGUI() } -#define X1 10 -#define X2 60 -#define X3 110 -#define X4 160 +#define X1 xS(10) +#define X2 xS(60) +#define X3 xS(110) +#define X4 xS(160) void ParametricBandGUI::create_objects() @@ -360,7 +360,7 @@ int ParametricWetness::handle_event() ParametricSize::ParametricSize(ParametricWindow *window, ParametricEQ *plugin, int x, int y) - : BC_PopupMenu(x, y, 100, "4096", 1) + : BC_PopupMenu(x, y, xS(100), "4096", 1) { this->plugin = plugin; this->window = window; @@ -401,10 +401,10 @@ void ParametricSize::update(int size) ParametricWindow::ParametricWindow(ParametricEQ *plugin) : PluginClientWindow(plugin, - 350, - 400, - 350, - 400, + xS(350), + yS(400), + xS(350), + yS(400), 0) { this->plugin = plugin; @@ -418,7 +418,7 @@ ParametricWindow::~ParametricWindow() void ParametricWindow::create_objects() { - int y = 35; + int y = yS(35); SET_TRACE add_subwindow(new BC_Title(X1, 10, _("Freq"))); @@ -427,37 +427,37 @@ SET_TRACE add_subwindow(new BC_Title(X4, 10, _("Mode"))); for(int i = 0; i < BANDS; i++) { - bands[i] = new ParametricBandGUI(plugin, this, 10, y, i); + bands[i] = new ParametricBandGUI(plugin, this, xS(10), y, i); bands[i]->create_objects(); - y += 50; + y += yS(50); } SET_TRACE BC_Title *title; int x = plugin->get_theme()->widget_border; - add_subwindow(title = new BC_Title(x, y + 10, _("Wetness:"))); + add_subwindow(title = new BC_Title(x, y + yS(10), _("Wetness:"))); x += title->get_w() + plugin->get_theme()->widget_border; add_subwindow(wetness = new ParametricWetness(plugin, x, y)); x += wetness->get_w() + plugin->get_theme()->widget_border; - add_subwindow(title = new BC_Title(x, y + 10, _("Window:"))); + add_subwindow(title = new BC_Title(x, y + yS(10), _("Window:"))); x += title->get_w() + plugin->get_theme()->widget_border; add_subwindow(size = new ParametricSize(this, plugin, x, - y + 10)); + y + yS(10))); size->create_objects(); size->update(plugin->config.window_size); - y += 50; - int canvas_x = 30; + y += yS(50); + int canvas_x = xS(30); int canvas_y = y; - int canvas_w = get_w() - canvas_x - 10; - int canvas_h = get_h() - canvas_y - 30; + int canvas_w = get_w() - canvas_x - xS(10); + int canvas_h = get_h() - canvas_y - yS(30); add_subwindow(canvas = new BC_SubWindow(canvas_x, canvas_y, canvas_w, @@ -472,10 +472,10 @@ SET_TRACE for(int i = 0; i <= MAJOR_DIVISIONS; i++) { int y1 = canvas_y + canvas_h - i * (canvas_h / MAJOR_DIVISIONS) - 2; - int y2 = y1 + 3; - int x1 = canvas_x - 25; - int x2 = canvas_x - 10; - int x3 = canvas_x - 2; + int y2 = y1 + yS(3); + int x1 = canvas_x - xS(25); + int x2 = canvas_x - xS(10); + int x3 = canvas_x - xS(2); char string[BCTEXTLEN]; if(i == 0) @@ -495,7 +495,7 @@ SET_TRACE for(int j = 1; j < MINOR_DIVISIONS; j++) { int y3 = y1 - j * (canvas_h / MAJOR_DIVISIONS) / MINOR_DIVISIONS; - int x4 = x3 - 5; + int x4 = x3 - xS(5); set_color(BLACK); draw_line(x4 + 1, y3 + 1, x3 + 1, y3 + 1); set_color(RED); @@ -511,12 +511,12 @@ SET_TRACE { int freq = Freq::tofreq(i * TOTALFREQS / MAJOR_DIVISIONS); int x1 = canvas_x + i * canvas_w / MAJOR_DIVISIONS; - int y1 = canvas_y + canvas_h + 20; + int y1 = canvas_y + canvas_h + yS(20); char string[BCTEXTLEN]; sprintf(string, "%d", freq); int x2 = x1 - get_text_width(SMALLFONT, string); - int y2 = y1 - 10; - int y3 = y2 - 5; + int y2 = y1 - yS(10); + int y3 = y2 - yS(5); int y4 = canvas_y + canvas_h; set_color(BLACK); @@ -537,7 +537,7 @@ SET_TRACE exp(-(double)j * 0.7) * (canvas_w / MAJOR_DIVISIONS)); set_color(BLACK); - draw_line(x3 + 1, y4 + 1, x3 + 1, y3 + 1); + draw_line(x3+1, y4+1, x3+1, y3+1); set_color(RED); draw_line(x3, y4, x3, y3); } diff --git a/cinelerra-5.1/plugins/perspective/perspective.C b/cinelerra-5.1/plugins/perspective/perspective.C index fc391597..c98e9b06 100644 --- a/cinelerra-5.1/plugins/perspective/perspective.C +++ b/cinelerra-5.1/plugins/perspective/perspective.C @@ -24,8 +24,8 @@ #include "language.h" #include "perspective.h" -#define PERSPECTIVE_WIDTH 400 -#define PERSPECTIVE_HEIGHT 600 +#define PERSPECTIVE_WIDTH xS(400) +#define PERSPECTIVE_HEIGHT yS(600) REGISTER_PLUGIN(PerspectiveMain) @@ -33,9 +33,9 @@ REGISTER_PLUGIN(PerspectiveMain) PerspectiveConfig::PerspectiveConfig() { x1 = 0; y1 = 0; - x2 = 100; y2 = 0; - x3 = 100; y3 = 100; - x4 = 0; y4 = 100; + x2 = xS(100); y2 = 0; + x3 = xS(100); y3 = yS(100); + x4 = 0; y4 = yS(100); mode = AffineEngine::PERSPECTIVE; smoothing = AffineEngine::AF_DEFAULT; window_w = PERSPECTIVE_WIDTH; @@ -120,63 +120,65 @@ PerspectiveWindow::~PerspectiveWindow() void PerspectiveWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10), xs20 = xS(20), xs80 = xS(80), xs100 = xS(100), xs120 = xS(120); + int ys5 = yS(5), ys10 = yS(10), ys30 = yS(30), ys40 = yS(40); + int x = xs10, y = ys10; add_subwindow(canvas = new PerspectiveCanvas(this, - x, y, get_w() - 20, get_h() - 290)); + x, y, get_w() - xs20, get_h() - yS(290))); canvas->set_cursor(CROSS_CURSOR, 0, 0); - y += canvas->get_h() + 10; + y += canvas->get_h() + ys10; add_subwindow(new BC_Title(x, y, _("Current X:"))); - x += 80; + x += xs80; this->x = new PerspectiveCoord(this, x, y, plugin->get_current_x(), 1); this->x->create_objects(); - x += 140; + x += xS(140); add_subwindow(new BC_Title(x, y, _("Y:"))); - x += 20; + x += xs20; this->y = new PerspectiveCoord(this, x, y, plugin->get_current_y(), 0); this->y->create_objects(); - x = 10; y += 30; + x = xs10; y += ys30; add_subwindow(mode_perspective = new PerspectiveMode(this, x, y, AffineEngine::PERSPECTIVE, _("Perspective"))); - x += 120; + x += xs120; add_subwindow(mode_sheer = new PerspectiveMode(this, x, y, AffineEngine::SHEER, _("Sheer"))); - x += 100; + x += xs100; add_subwindow(affine = new PerspectiveAffine(this, x, y)); affine->create_objects(); - x = 10; y += 30; + x = xs10; y += ys30; add_subwindow(mode_stretch = new PerspectiveMode(this, x, y, AffineEngine::STRETCH, _("Stretch"))); - x += 120; + x += xs120; add_subwindow(new PerspectiveReset(this, x, y)); update_canvas(); - x = 10; y += 30; + x = xs10; y += ys30; BC_Title *title; add_subwindow(title = new BC_Title(x, y, _("Zoom view:"))); - int x1 = x + title->get_w() + 10, w1 = get_w() - x1 - 10; + int x1 = x + title->get_w() + xs10, w1 = get_w() - x1 - xs10; add_subwindow(zoom_view = new PerspectiveZoomView(this, x1, y, w1)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Perspective direction:"))); - x += 170; + x += xS(170); add_subwindow(forward = new PerspectiveDirection(this, x, y, 1, _("Forward"))); - x += 100; + x += xs100; add_subwindow(reverse = new PerspectiveDirection(this, x, y, 0, _("Reverse"))); - x = 10; y += 40; + x = xs10; y += ys40; add_subwindow(title = new BC_Title(x, y, _("Alt/Shift:"))); - add_subwindow(new BC_Title(x+100, y, _("Button1 Action:"))); - y += title->get_h() + 5; + add_subwindow(new BC_Title(x+xs100, y, _("Button1 Action:"))); + y += title->get_h() + ys5; add_subwindow(new BC_Title(x, y, " 0 / 0\n" " 0 / 1\n" " 1 / 0\n" " 1 / 1")); - add_subwindow(new BC_Title(x+100, y, + add_subwindow(new BC_Title(x+xs100, y, _("Translate endpoint\n" "Zoom image\n" "Translate image\n" @@ -515,10 +517,11 @@ int PerspectiveCanvas::cursor_motion_event() PerspectiveCoord::PerspectiveCoord(PerspectiveWindow *gui, int x, int y, float value, int is_x) - : BC_TumbleTextBox(gui, value, (float)-100, (float)200, x, y, 100) + : BC_TumbleTextBox(gui, value, -100.f, 200.f, x, y, xS(70)) { this->gui = gui; this->is_x = is_x; + set_precision(2); } int PerspectiveCoord::handle_event() @@ -598,7 +601,7 @@ int PerspectiveAffineItem::handle_event() } PerspectiveAffine::PerspectiveAffine(PerspectiveWindow *gui, int x, int y) - : BC_PopupMenu(x, y, 100, "", 1) + : BC_PopupMenu(x, y, xS(100), "", 1) { this->gui = gui; affine_modes[AffineEngine::AF_DEFAULT] = _("default"); diff --git a/cinelerra-5.1/plugins/photoscale/photoscale.C b/cinelerra-5.1/plugins/photoscale/photoscale.C index 59b3ff02..55f515f2 100644 --- a/cinelerra-5.1/plugins/photoscale/photoscale.C +++ b/cinelerra-5.1/plugins/photoscale/photoscale.C @@ -39,10 +39,10 @@ PhotoScaleWindow::PhotoScaleWindow(PhotoScaleMain *plugin) : PluginClientWindow(plugin, - 250, - 200, - 250, - 200, + xS(250), + yS(200), + xS(250), + yS(200), 0) { this->plugin = plugin; @@ -54,7 +54,7 @@ PhotoScaleWindow::~PhotoScaleWindow() void PhotoScaleWindow::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); BC_Title *title; int x2 = x + BC_Title::calculate_w(this, _("Height:")) + plugin->get_theme()->widget_border; @@ -69,7 +69,7 @@ void PhotoScaleWindow::create_objects() this, x2, y, - 100, + xS(100), &(plugin->config.width))); y += output_size[0]->get_h() + plugin->get_theme()->widget_border; @@ -79,7 +79,7 @@ void PhotoScaleWindow::create_objects() this, x2, y, - 100, + xS(100), &(plugin->config.height))); FrameSizePulldown *pulldown; @@ -231,8 +231,8 @@ int PhotoScaleSwapExtents::handle_event() PhotoScaleConfig::PhotoScaleConfig() { - width = 640; - height = 480; + width = xS(640); + height = yS(480); use_file = 1; } diff --git a/cinelerra-5.1/plugins/piano/piano.C b/cinelerra-5.1/plugins/piano/piano.C index d996be05..5ea1b09b 100644 --- a/cinelerra-5.1/plugins/piano/piano.C +++ b/cinelerra-5.1/plugins/piano/piano.C @@ -464,8 +464,8 @@ void PianoThread::run() { BC_DisplayInfo info; window = new PianoWindow(synth, - info.get_abs_cursor_x() - 125, - info.get_abs_cursor_y() - 115); + info.get_abs_cursor_x() - xS(125), + info.get_abs_cursor_y() - yS(115)); window->create_objects(); int result = window->run_window(); completion.unlock(); @@ -484,16 +484,8 @@ void PianoThread::run() PianoWindow::PianoWindow(Piano *synth, int x, int y) - : BC_Window(synth->gui_string, - x, - y, - 380, - synth->h, - 380, - 10, - 1, - 0, - 1) + : BC_Window(synth->gui_string, x, y, xS(380), synth->h, + xS(380), yS(10), 1, 0, 1) { this->synth = synth; } @@ -530,59 +522,61 @@ int PianoWindow::create_objects() harmonicmenu->add_item(new PianoFreqOdd(synth)); harmonicmenu->add_item(new PianoFreqPrime(synth)); - int x = 10, y = 30, i; + int xs10 = xS(10), xs240 = xS(240); + int ys10 = yS(10), ys20 = yS(20), ys30 = yS(30), ys35 = yS(35); + int x = xs10, y = ys30, i; add_subwindow(new BC_Title(x, y, _("Waveform"))); - x += 240; + x += xs240; add_subwindow(new BC_Title(x, y, _("Wave Function"))); - y += 20; - x = 10; - add_subwindow(canvas = new PianoCanvas(synth, this, x, y, 230, 160)); + y += ys20; + x = xs10; + add_subwindow(canvas = new PianoCanvas(synth, this, x, y, xS(230), yS(160))); canvas->update(); - x += 240; + x += xS(240); char string[BCTEXTLEN]; waveform_to_text(string, synth->config.wavefunction); add_subwindow(waveform = new PianoWaveForm(synth, x, y, string)); waveform->create_objects(); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Base Frequency:"))); - y += 30; + y += ys30; add_subwindow(base_freq = new PianoBaseFreq(synth, x, y)); - x += 80; - add_subwindow(freqpot = new PianoFreqPot(synth, this, x, y - 10)); + x += xs80; + add_subwindow(freqpot = new PianoFreqPot(synth, this, x, y - ys10)); base_freq->freq_pot = freqpot; freqpot->freq_text = base_freq; - x -= 80; - y += 40; + x -= xs80; + y += ys40; add_subwindow(new BC_Title(x, y, _("Wetness:"))); - add_subwindow(wetness = new PianoWetness(synth, x + 70, y - 10)); + add_subwindow(wetness = new PianoWetness(synth, x + xs70, y - ys10)); - y += 40; + y += ys40; add_subwindow(new PianoClear(synth, x, y)); - x = 50; - y = 220; + x = xs50; + y = yS(220); add_subwindow(new BC_Title(x, y, _("Level"))); - x += 75; + x += xs75; add_subwindow(new BC_Title(x, y, _("Phase"))); - x += 75; + x += xs75; add_subwindow(new BC_Title(x, y, _("Harmonic"))); - y += 20; x = 10; - add_subwindow(subwindow = new PianoSubWindow(synth, x, y, 265, get_h() - y)); - x += 265; + y += ys20; x = xs10; + add_subwindow(subwindow = new PianoSubWindow(synth, x, y, xS(265), get_h() - y)); + x += xS(265); add_subwindow(scroll = new PianoScroll(synth, this, x, y, get_h() - y)); - x += 20; + x += xs20; add_subwindow(new PianoAddOsc(synth, this, x, y)); - y += 30; + y += ys30; add_subwindow(new PianoDelOsc(synth, this, x, y)); update_scrollbar(); @@ -662,7 +656,7 @@ void PianoWindow::update_oscillators() { gui = oscillators.values[i]; - gui->title->reposition_window(gui->title->get_x(), y + 15); + gui->title->reposition_window(gui->title->get_x(), y + yS(15)); gui->level->reposition_window(gui->level->get_x(), y); gui->level->update(config->level); @@ -723,7 +717,7 @@ int PianoOscGUI::create_objects(int y) { char text[BCTEXTLEN]; sprintf(text, "%d:", number + 1); - window->subwindow->add_subwindow(title = new BC_Title(10, y + 15, text)); + window->subwindow->add_subwindow(title = new BC_Title(xs10, y + ys15, text)); window->subwindow->add_subwindow(level = new PianoOscGUILevel(window->synth, this, y)); window->subwindow->add_subwindow(phase = new PianoOscGUIPhase(window->synth, this, y)); @@ -735,7 +729,7 @@ int PianoOscGUI::create_objects(int y) PianoOscGUILevel::PianoOscGUILevel(Piano *synth, PianoOscGUI *gui, int y) - : BC_FPot(50, + : BC_FPot(xS(50), y, synth->config.oscillator_config.values[gui->number]->level, INFINITYGAIN, @@ -761,11 +755,11 @@ int PianoOscGUILevel::handle_event() PianoOscGUIPhase::PianoOscGUIPhase(Piano *synth, PianoOscGUI *gui, int y) - : BC_IPot(125, + : BC_IPot(xS(125), y, (int64_t)(synth->config.oscillator_config.values[gui->number]->phase * 360), 0, - 360) + xS(360)) { this->synth = synth; this->gui = gui; @@ -787,11 +781,11 @@ int PianoOscGUIPhase::handle_event() PianoOscGUIFreq::PianoOscGUIFreq(Piano *synth, PianoOscGUI *gui, int y) - : BC_IPot(200, + : BC_IPot(xS(200), y, (int64_t)(synth->config.oscillator_config.values[gui->number]->freq_factor), - 1, - 100) + yS(1), + xS(100)) { this->synth = synth; this->gui = gui; @@ -930,7 +924,7 @@ int PianoClear::handle_event() PianoWaveForm::PianoWaveForm(Piano *synth, int x, int y, char *text) - : BC_PopupMenu(x, y, 120, text) + : BC_PopupMenu(x, y, xS(120), text) { this->synth = synth; } @@ -1012,7 +1006,7 @@ int PianoFreqPot::handle_event() PianoBaseFreq::PianoBaseFreq(Piano *synth, int x, int y) - : BC_TextBox(x, y, 70, 1, (int)synth->config.base_freq) + : BC_TextBox(x, y, xS(70), 1, (int)synth->config.base_freq) { this->synth = synth; } diff --git a/cinelerra-5.1/plugins/pitch/pitch.C b/cinelerra-5.1/plugins/pitch/pitch.C index 673c33c1..b858ea28 100644 --- a/cinelerra-5.1/plugins/pitch/pitch.C +++ b/cinelerra-5.1/plugins/pitch/pitch.C @@ -401,10 +401,10 @@ void PitchConfig::interpolate(PitchConfig &prev, PitchWindow::PitchWindow(PitchEffect *plugin) : PluginClientWindow(plugin, - 150, - 100, - 150, - 100, + xS(150), + yS(100), + xS(150), + yS(100), 0) { this->plugin = plugin; @@ -412,7 +412,7 @@ PitchWindow::PitchWindow(PitchEffect *plugin) void PitchWindow::create_objects() { - int x1 = 10, x = 10, y = 10; + int x1 = xS(10), x = xS(10), y = yS(10); BC_Title *title; add_subwindow(title = new BC_Title(x, y, _("Scale:"))); @@ -465,7 +465,7 @@ int PitchScale::handle_event() PitchSize::PitchSize(PitchWindow *window, PitchEffect *plugin, int x, int y) - : BC_PopupMenu(x, y, 100, "4096", 1) + : BC_PopupMenu(x, y, xS(100), "4096", 1) { this->plugin = plugin; } diff --git a/cinelerra-5.1/plugins/polar/polar.C b/cinelerra-5.1/plugins/polar/polar.C index ffdc0ae5..417afc71 100644 --- a/cinelerra-5.1/plugins/polar/polar.C +++ b/cinelerra-5.1/plugins/polar/polar.C @@ -235,10 +235,10 @@ void PolarConfig::interpolate(PolarConfig &prev, PolarWindow::PolarWindow(PolarEffect *plugin) : PluginClientWindow(plugin, - 330, - 122, - 330, - 122, + xS(330), + yS(122), + xS(330), + yS(122), 0) { this->plugin = plugin; @@ -246,19 +246,21 @@ PolarWindow::PolarWindow(PolarEffect *plugin) void PolarWindow::create_objects() { - int x = 10, y = 10, x1 = x + 50; - int x2 = 0; int clrBtn_w = 50; + int xs10 = xS(10), xs50 = xS(50); + int ys10 = yS(10), ys40 = yS(40); + int x = xs10, y = ys10, x1 = x + xs50; + int x2 = 0; int clrBtn_w = xs50; add_subwindow(new BC_Title(x, y, _("Depth:"))); add_subwindow(depth = new PolarDepth(plugin, x1, y)); - x2 = x1 + depth->get_w() + 10; + x2 = x1 + depth->get_w() + xs10; add_subwindow(depthClr = new PolarSliderClr(plugin, this, x2, y, clrBtn_w, RESET_DEPTH)); - y += 40; + y += ys40; add_subwindow(new BC_Title(x, y, _("Angle:"))); add_subwindow(angle = new PolarAngle(plugin, x1, y)); add_subwindow(angleClr = new PolarSliderClr(plugin, this, x2, y, clrBtn_w, RESET_ANGLE)); - y += 40; + y += ys40; add_subwindow(reset = new PolarReset(plugin, this, x, y)); show_window(); @@ -289,8 +291,8 @@ PolarDepth::PolarDepth(PolarEffect *plugin, int x, int y) : BC_FSlider(x, y, 0, - 200, - 200, + xS(200), + yS(200), (float)1, (float)100, plugin->config.depth) @@ -312,8 +314,8 @@ PolarAngle::PolarAngle(PolarEffect *plugin, int x, int y) : BC_FSlider(x, y, 0, - 200, - 200, + xS(200), + yS(200), (float)1, (float)360, plugin->config.angle) diff --git a/cinelerra-5.1/plugins/polar/polarwindow.C b/cinelerra-5.1/plugins/polar/polarwindow.C index bf777450..46b4d287 100644 --- a/cinelerra-5.1/plugins/polar/polarwindow.C +++ b/cinelerra-5.1/plugins/polar/polarwindow.C @@ -55,15 +55,17 @@ PolarWindow::~PolarWindow() int PolarWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10), xs80 = xS(80), xs190 = xS(190), xs200 = xS(200); + int ys10 = yS(10), ys20 = yS(20), ys30 = yS(30), ys35 = yS(35); + int x = xs10, y = ys10; add_tool(new BC_Title(x, y, _("Depth"))); - add_tool(automation[0] = new AutomatedFn(client, this, x + 80, y, 0)); - y += 20; + add_tool(automation[0] = new AutomatedFn(client, this, x + xs80, y, 0)); + y += ys20; add_tool(depth_slider = new DepthSlider(client, x, y)); - y += 35; + y += ys35; add_tool(new BC_Title(x, y, _("Angle"))); - add_tool(automation[1] = new AutomatedFn(client, this, x + 80, y, 1)); - y += 20; + add_tool(automation[1] = new AutomatedFn(client, this, x + xs80, y, xS(1))); + y += ys20; add_tool(angle_slider = new AngleSlider(client, x, y)); } @@ -76,7 +78,7 @@ int PolarWindow::close_event() } DepthSlider::DepthSlider(PolarMain *client, int x, int y) - : BC_ISlider(x, y, 190, 30, 200, client->depth, 0, MAXDEPTH, DKGREY, BLACK, 1) + : BC_ISlider(x, y, xs190, ys30, xs200, client->depth, 0, MAXDEPTH, DKGREY, BLACK, 1) { this->client = client; } @@ -91,7 +93,7 @@ int DepthSlider::handle_event() } AngleSlider::AngleSlider(PolarMain *client, int x, int y) - : BC_ISlider(x, y, 190, 30, 200, client->angle, 0, MAXANGLE, DKGREY, BLACK, 1) + : BC_ISlider(x, y, xs190, ys30, xs200, client->angle, 0, MAXANGLE, DKGREY, BLACK, 1) { this->client = client; } @@ -106,7 +108,7 @@ int AngleSlider::handle_event() } AutomatedFn::AutomatedFn(PolarMain *client, PolarWindow *window, int x, int y, int number) - : BC_CheckBox(x, y, 16, 16, client->automated_function == number, _("Automate")) + : BC_CheckBox(x, y, xS(16), yS(16), client->automated_function == number, _("Automate")) { this->client = client; this->window = window; diff --git a/cinelerra-5.1/plugins/puzzleobj/puzzleobjwindow.C b/cinelerra-5.1/plugins/puzzleobj/puzzleobjwindow.C index da3d1470..18573fdb 100644 --- a/cinelerra-5.1/plugins/puzzleobj/puzzleobjwindow.C +++ b/cinelerra-5.1/plugins/puzzleobj/puzzleobjwindow.C @@ -26,7 +26,7 @@ #include "theme.h" PuzzleObjWindow::PuzzleObjWindow(PuzzleObj *plugin) - : PluginClientWindow(plugin, 320, 100, 320, 100, 0) + : PluginClientWindow(plugin, xS(320), yS(100), xS(320), yS(100), 0) { this->plugin = plugin; pixels = 0; @@ -41,18 +41,20 @@ PuzzleObjWindow::~PuzzleObjWindow() void PuzzleObjWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10), xs50 = xS(50), xs80 = xS(80), xs180 = xS(180); + int ys10 = yS(10); + int x = xs10, y = ys10; BC_Title *title = new BC_Title(x, y, _("PuzzleObj")); add_subwindow(title); - y += title->get_h() + 10; - int x1 = x + 80; + y += title->get_h() + ys10; + int x1 = x + xs80; add_subwindow(pixels_title = new BC_Title(x,y,_("Pixels:"))); add_subwindow(pixels = new PuzzleObjISlider(this, - x1,y,180, 1,1000, &plugin->config.pixels)); - y += pixels->get_h() + 10; + x1,y,xs180, 1,1000, &plugin->config.pixels)); + y += pixels->get_h() + ys10; add_subwindow(iterations_title = new BC_Title(x,y,_("Iterations:"))); add_subwindow(iterations = new PuzzleObjISlider(this, - x1,y,180, 0,50, &plugin->config.iterations)); + x1,y,xs180, 0,50, &plugin->config.iterations)); show_window(1); } diff --git a/cinelerra-5.1/plugins/radialblur/radialblur.C b/cinelerra-5.1/plugins/radialblur/radialblur.C index 5b80b0b8..8f25f176 100644 --- a/cinelerra-5.1/plugins/radialblur/radialblur.C +++ b/cinelerra-5.1/plugins/radialblur/radialblur.C @@ -38,8 +38,8 @@ void RadialBlurConfig::reset(int clear) { switch(clear) { case RESET_ALL : - x = 50; - y = 50; + x = xS(50); + y = yS(50); angle = 0; steps = 1; r = 1; @@ -47,9 +47,9 @@ void RadialBlurConfig::reset(int clear) b = 1; a = 1; break; - case RESET_XSLIDER : x = 50; + case RESET_XSLIDER : x = xS(50); break; - case RESET_YSLIDER : y = 50; + case RESET_YSLIDER : y = yS(50); break; case RESET_ANGLE : angle = 0; break; @@ -57,8 +57,8 @@ void RadialBlurConfig::reset(int clear) break; case RESET_DEFAULT_SETTINGS : default: - x = 50; - y = 50; + x = xS(50); + y = yS(50); angle = 33; steps = 10; r = 1; @@ -126,10 +126,10 @@ void RadialBlurConfig::interpolate(RadialBlurConfig &prev, RadialBlurWindow::RadialBlurWindow(RadialBlurMain *plugin) : PluginClientWindow(plugin, - 280, - 370, - 280, - 370, + xS(280), + yS(370), + xS(280), + yS(370), 0) { this->plugin = plugin; @@ -141,43 +141,45 @@ RadialBlurWindow::~RadialBlurWindow() void RadialBlurWindow::create_objects() { - int x = 10, y = 10; - int x1 = 0; int clrBtn_w = 50; - int defaultBtn_w = 100; + int xs10 = xS(10), xs50 = xS(50), xs100 = xS(100); + int ys10 = yS(10), ys20 = yS(20), ys30 = yS(30), ys40 = yS(45); + int x = xs10, y = ys10; + int x1 = 0; int clrBtn_w = xs50; + int defaultBtn_w = xs100; add_subwindow(new BC_Title(x, y, _("X:"))); - y += 20; + y += ys20; add_subwindow(this->x = new RadialBlurSize(plugin, x, y, &plugin->config.x, 0, 100)); - x1 = x + this->x->get_w() + 10; + x1 = x + this->x->get_w() + xs10; add_subwindow(xClr = new RadialBlurSliderClr(plugin, this, x1, y, clrBtn_w, RESET_XSLIDER)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Y:"))); - y += 20; + y += ys20; add_subwindow(this->y = new RadialBlurSize(plugin, x, y, &plugin->config.y, 0, 100)); add_subwindow(yClr = new RadialBlurSliderClr(plugin, this, x1, y, clrBtn_w, RESET_YSLIDER)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Angle:"))); - y += 20; + y += ys20; add_subwindow(angle = new RadialBlurSize(plugin, x, y, &plugin->config.angle, 0, 360)); add_subwindow(angleClr = new RadialBlurSliderClr(plugin, this, x1, y, clrBtn_w, RESET_ANGLE)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Steps:"))); - y += 20; + y += ys20; add_subwindow(steps = new RadialBlurSize(plugin, x, y, &plugin->config.steps, 1, 100)); add_subwindow(stepsClr = new RadialBlurSliderClr(plugin, this, x1, y, clrBtn_w, RESET_STEPS)); - y += 30; + y += ys30; add_subwindow(r = new RadialBlurToggle(plugin, x, y, &plugin->config.r, _("Red"))); - y += 30; + y += ys30; add_subwindow(g = new RadialBlurToggle(plugin, x, y, &plugin->config.g, _("Green"))); - y += 30; + y += ys30; add_subwindow(b = new RadialBlurToggle(plugin, x, y, &plugin->config.b, _("Blue"))); - y += 30; + y += ys30; add_subwindow(a = new RadialBlurToggle(plugin, x, y, &plugin->config.a, _("Alpha"))); - y += 40; + y += ys40; add_subwindow(reset = new RadialBlurReset(plugin, this, x, y)); add_subwindow(default_settings = new RadialBlurDefaultSettings(plugin, this, (280 - 10 - defaultBtn_w), y, defaultBtn_w)); @@ -251,7 +253,7 @@ RadialBlurSize::RadialBlurSize(RadialBlurMain *plugin, int *output, int min, int max) - : BC_ISlider(x, y, 0, 200, 200, min, max, *output) + : BC_ISlider(x, y, 0, xS(200), yS(200), min, max, *output) { this->plugin = plugin; this->output = output; diff --git a/cinelerra-5.1/plugins/reframe/reframe.C b/cinelerra-5.1/plugins/reframe/reframe.C index dc3ddda1..4af96105 100644 --- a/cinelerra-5.1/plugins/reframe/reframe.C +++ b/cinelerra-5.1/plugins/reframe/reframe.C @@ -150,7 +150,7 @@ int ReFrame::process_loop(VFrame *buffer) ReFrameOutput::ReFrameOutput(ReFrame *plugin, int x, int y) - : BC_TextBox(x, y, 150, 1, (float)plugin->scale) + : BC_TextBox(x, y, xS(150), 1, (float)plugin->scale) { this->plugin = plugin; } @@ -167,10 +167,10 @@ ReFrameWindow::ReFrameWindow(ReFrame *plugin, int x, int y) : BC_Window(plugin->plugin_title(), x, y, - 230, - 160, - 230, - 160, + xS(230), + yS(160), + xS(230), + yS(160), 0, 0, 1) @@ -185,10 +185,10 @@ ReFrameWindow::~ReFrameWindow() void ReFrameWindow::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); lock_window("ReFrameWindow::create_objects"); add_subwindow(new BC_Title(x, y, _("Scale factor:"))); - y += 20; + y += yS(20); add_subwindow(new ReFrameOutput(plugin, x, y)); add_subwindow(new BC_OKButton(this)); add_subwindow(new BC_CancelButton(this)); diff --git a/cinelerra-5.1/plugins/reframert/reframert.C b/cinelerra-5.1/plugins/reframert/reframert.C index 1c52881f..9558a343 100644 --- a/cinelerra-5.1/plugins/reframert/reframert.C +++ b/cinelerra-5.1/plugins/reframert/reframert.C @@ -108,7 +108,7 @@ void ReframeRTConfig::boundaries() ReframeRTWindow::ReframeRTWindow(ReframeRT *plugin) - : PluginClientWindow(plugin, 230, 235, 230, 235, 0) + : PluginClientWindow(plugin, xS(230), yS(235), xS(230), yS(235), 0) { this->plugin = plugin; } @@ -144,11 +144,11 @@ void ReframeRTWindow::create_objects() y += denom->get_h() + plugin->get_theme()->widget_border; add_subwindow(stretch = new ReframeRTStretch(plugin, this, x, y)); - y += 30; + y += yS(30); add_subwindow(downsample = new ReframeRTDownsample(plugin, this, x, y)); - y += 30; + y += yS(30); add_subwindow(interpolate = new ReframeRTInterpolate(plugin, this, x, y)); - y += 40; + y += yS(40); add_subwindow(reset = new ReframeRTReset(plugin, this, x, y)); show_window(); } diff --git a/cinelerra-5.1/plugins/removegaps/removegaps.C b/cinelerra-5.1/plugins/removegaps/removegaps.C index 660af956..4fff8f2b 100644 --- a/cinelerra-5.1/plugins/removegaps/removegaps.C +++ b/cinelerra-5.1/plugins/removegaps/removegaps.C @@ -84,10 +84,10 @@ void RemoveGapsConfig::boundaries() RemoveGapsWindow::RemoveGapsWindow(RemoveGaps *plugin) : PluginClientWindow(plugin, - 320, - 160, - 320, - 160, + xS(320), + yS(160), + xS(320), + yS(160), 0) { this->plugin = plugin; @@ -99,7 +99,7 @@ RemoveGapsWindow::~RemoveGapsWindow() void RemoveGapsWindow::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); BC_Title *title; add_subwindow(title = new BC_Title(x, y, _("Threshold of gap (DB):"))); diff --git a/cinelerra-5.1/plugins/reroute/reroute.C b/cinelerra-5.1/plugins/reroute/reroute.C index 7527523e..6b05b592 100644 --- a/cinelerra-5.1/plugins/reroute/reroute.C +++ b/cinelerra-5.1/plugins/reroute/reroute.C @@ -176,7 +176,7 @@ const char* RerouteConfig::output_to_text(int output_track) RerouteWindow::RerouteWindow(Reroute *plugin) - : PluginClientWindow(plugin, 300, 160, 0, 0, 1) + : PluginClientWindow(plugin, xS(300), yS(160), 0, 0, 1) { this->plugin = plugin; } @@ -187,18 +187,20 @@ RerouteWindow::~RerouteWindow() void RerouteWindow::create_objects() { - int x = 10, y = 10; + int xs5 = xS(5), xs10 = xS(10); + int ys10 = yS(10), ys30 = yS(30); + int x = xs10, y = ys10; BC_Title *title; add_subwindow(title = new BC_Title(x, y, _("Target track:"))); - int col2 = title->get_w() + 5; + int col2 = title->get_w() + xs5; add_subwindow(output = new RerouteOutput(plugin, x + col2, y)); output->create_objects(); - y += 30; + y += ys30; add_subwindow(title = new BC_Title(x, y, _("Operation:"))); add_subwindow(operation = new RerouteOperation(plugin, x + col2, @@ -221,7 +223,7 @@ RerouteOperation::RerouteOperation(Reroute *plugin, int y) : BC_PopupMenu(x, y, - 150, + xS(150), RerouteConfig::operation_to_text(plugin->config.operation), 1) { @@ -270,7 +272,7 @@ RerouteOutput::RerouteOutput(Reroute *plugin, int y) : BC_PopupMenu(x, y, - 100, + xS(100), RerouteConfig::output_to_text(plugin->config.output_track), 1) { diff --git a/cinelerra-5.1/plugins/resample/resample.C b/cinelerra-5.1/plugins/resample/resample.C index 29e6a258..6293ba69 100644 --- a/cinelerra-5.1/plugins/resample/resample.C +++ b/cinelerra-5.1/plugins/resample/resample.C @@ -42,7 +42,7 @@ PluginClient* new_plugin(PluginServer *server) ResampleFraction::ResampleFraction(ResampleEffect *plugin, int x, int y) - : BC_TextBox(x, y, 100, 1, (float)plugin->scale, 1, MEDIUMFONT, 6) + : BC_TextBox(x, y, xS(100), 1, (float)plugin->scale, 1, MEDIUMFONT, 6) { this->plugin = plugin; } @@ -62,12 +62,12 @@ int ResampleFraction::handle_event() ResampleWindow::ResampleWindow(ResampleEffect *plugin, int x, int y) : BC_Window(_(PROGRAM_NAME ": Resample"), - x - 160, - y - 75, - 320, - 150, - 320, - 150, + x - xS(160), + y - yS(75), + xS(320), + yS(150), + xS(320), + yS(150), 0, 0, 1) @@ -77,10 +77,12 @@ ResampleWindow::ResampleWindow(ResampleEffect *plugin, int x, int y) void ResampleWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10); + int ys10 = yS(10), ys20 = yS(20); + int x = xs10, y = ys10; lock_window("ResampleWindow::create_objects"); add_subwindow(new BC_Title(x, y, _("Scale factor:"))); - y += 20; + y += ys20; add_subwindow(new ResampleFraction(plugin, x, y)); add_subwindow(new BC_OKButton(this)); add_subwindow(new BC_CancelButton(this)); diff --git a/cinelerra-5.1/plugins/resamplert/resamplert.C b/cinelerra-5.1/plugins/resamplert/resamplert.C index af6c4ab6..27f60270 100644 --- a/cinelerra-5.1/plugins/resamplert/resamplert.C +++ b/cinelerra-5.1/plugins/resamplert/resamplert.C @@ -79,10 +79,10 @@ void ResampleRTConfig::boundaries() ResampleRTWindow::ResampleRTWindow(ResampleRT *plugin) : PluginClientWindow(plugin, - 210, - 160, - 200, - 160, + xS(210), + yS(160), + xS(200), + yS(160), 0) { this->plugin = plugin; diff --git a/cinelerra-5.1/plugins/reverb/reverbwindow.C b/cinelerra-5.1/plugins/reverb/reverbwindow.C index add6ab45..86933363 100644 --- a/cinelerra-5.1/plugins/reverb/reverbwindow.C +++ b/cinelerra-5.1/plugins/reverb/reverbwindow.C @@ -33,10 +33,10 @@ ReverbWindow::ReverbWindow(Reverb *reverb) : PluginClientWindow(reverb, - 300, - 230, - 300, - 230, + xS(300), + yS(230), + xS(300), + yS(230), 0) { this->reverb = reverb; @@ -48,23 +48,25 @@ ReverbWindow::~ReverbWindow() void ReverbWindow::create_objects() { - int x = 200, y = 10; - add_tool(new BC_Title(5, y + 10, _("Initial signal level:"))); - add_tool(level_init = new ReverbLevelInit(reverb, x, y)); y += 25; - add_tool(new BC_Title(5, y + 10, _("ms before reflections:"))); - add_tool(delay_init = new ReverbDelayInit(reverb, x + 35, y)); y += 25; - add_tool(new BC_Title(5, y + 10, _("First reflection level:"))); - add_tool(ref_level1 = new ReverbRefLevel1(reverb, x, y)); y += 25; - add_tool(new BC_Title(5, y + 10, _("Last reflection level:"))); - add_tool(ref_level2 = new ReverbRefLevel2(reverb, x + 35, y)); y += 25; - add_tool(new BC_Title(5, y + 10, _("Number of reflections:"))); - add_tool(ref_total = new ReverbRefTotal(reverb, x, y)); y += 25; - add_tool(new BC_Title(5, y + 10, _("ms of reflections:"))); - add_tool(ref_length = new ReverbRefLength(reverb, x + 35, y)); y += 25; - add_tool(new BC_Title(5, y + 10, _("Start band for lowpass:"))); - add_tool(lowpass1 = new ReverbLowPass1(reverb, x, y)); y += 25; - add_tool(new BC_Title(5, y + 10, _("End band for lowpass:"))); - add_tool(lowpass2 = new ReverbLowPass2(reverb, x + 35, y)); y += 40; + int xs5 = xS(5), xs35 = xS(35), xs200 = xS(200); + int ys10 = yS(10), ys25 = yS(25), ys40 = yS(40); + int x = xs200, y = ys10; + add_tool(new BC_Title(xs5, y + ys10, _("Initial signal level:"))); + add_tool(level_init = new ReverbLevelInit(reverb, x, y)); y += ys25; + add_tool(new BC_Title(xs5, y + ys10, _("ms before reflections:"))); + add_tool(delay_init = new ReverbDelayInit(reverb, x + xs35, y)); y += ys25; + add_tool(new BC_Title(xs5, y + ys10, _("First reflection level:"))); + add_tool(ref_level1 = new ReverbRefLevel1(reverb, x, y)); y += ys25; + add_tool(new BC_Title(xs5, y + ys10, _("Last reflection level:"))); + add_tool(ref_level2 = new ReverbRefLevel2(reverb, x + xs35, y)); y += ys25; + add_tool(new BC_Title(xs5, y + ys10, _("Number of reflections:"))); + add_tool(ref_total = new ReverbRefTotal(reverb, x, y)); y += ys25; + add_tool(new BC_Title(xs5, y + ys10, _("ms of reflections:"))); + add_tool(ref_length = new ReverbRefLength(reverb, x + xs35, y)); y += ys25; + add_tool(new BC_Title(xs5, y + ys10, _("Start band for lowpass:"))); + add_tool(lowpass1 = new ReverbLowPass1(reverb, x, y)); y += ys25; + add_tool(new BC_Title(xs5, y + ys10, _("End band for lowpass:"))); + add_tool(lowpass2 = new ReverbLowPass2(reverb, x + xs35, y)); y += ys40; show_window(); flush(); } diff --git a/cinelerra-5.1/plugins/reverseaudio/reverseaudio.C b/cinelerra-5.1/plugins/reverseaudio/reverseaudio.C index 687c950c..1a1f2907 100644 --- a/cinelerra-5.1/plugins/reverseaudio/reverseaudio.C +++ b/cinelerra-5.1/plugins/reverseaudio/reverseaudio.C @@ -104,7 +104,7 @@ ReverseAudioConfig::ReverseAudioConfig() ReverseAudioWindow::ReverseAudioWindow(ReverseAudio *plugin) - : PluginClientWindow(plugin, 265, 60, 265, 60, 0) + : PluginClientWindow(plugin, xS(265), yS(60), xS(265), yS(60), 0) { this->plugin = plugin; } @@ -115,7 +115,7 @@ ReverseAudioWindow::~ReverseAudioWindow() void ReverseAudioWindow::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); add_subwindow(enabled = new ReverseAudioEnabled(plugin, x, diff --git a/cinelerra-5.1/plugins/reversevideo/reversevideo.C b/cinelerra-5.1/plugins/reversevideo/reversevideo.C index cf8f1e1d..4fba5312 100644 --- a/cinelerra-5.1/plugins/reversevideo/reversevideo.C +++ b/cinelerra-5.1/plugins/reversevideo/reversevideo.C @@ -102,10 +102,10 @@ ReverseVideoConfig::ReverseVideoConfig() ReverseVideoWindow::ReverseVideoWindow(ReverseVideo *plugin) : PluginClientWindow(plugin, - 210, - 160, - 200, - 160, + xS(210), + yS(160), + xS(200), + yS(160), 0) { this->plugin = plugin; @@ -117,7 +117,7 @@ ReverseVideoWindow::~ReverseVideoWindow() void ReverseVideoWindow::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); add_subwindow(enabled = new ReverseVideoEnabled(plugin, x, diff --git a/cinelerra-5.1/plugins/rgb601/rgb601window.C b/cinelerra-5.1/plugins/rgb601/rgb601window.C index e688a2c8..0ddb7d87 100644 --- a/cinelerra-5.1/plugins/rgb601/rgb601window.C +++ b/cinelerra-5.1/plugins/rgb601/rgb601window.C @@ -34,7 +34,7 @@ RGB601Window::RGB601Window(RGB601Main *client) - : PluginClientWindow(client, 235, 100, 235, 100, 0) + : PluginClientWindow(client, xS(235), yS(100), xS(235), yS(100), 0) { this->client = client; } @@ -45,7 +45,9 @@ RGB601Window::~RGB601Window() void RGB601Window::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10); + int ys10 = yS(10), ys30 = yS(30); + int x = xs10, y = ys10; add_tool(forward = new RGB601Direction(this, x, @@ -53,7 +55,7 @@ void RGB601Window::create_objects() &client->config.direction, 1, _("RGB -> 601 compression"))); - y += 30; + y += ys30; add_tool(reverse = new RGB601Direction(this, x, y, diff --git a/cinelerra-5.1/plugins/rgbshift/rgbshift.C b/cinelerra-5.1/plugins/rgbshift/rgbshift.C index f05cb3a0..95d12058 100644 --- a/cinelerra-5.1/plugins/rgbshift/rgbshift.C +++ b/cinelerra-5.1/plugins/rgbshift/rgbshift.C @@ -97,7 +97,7 @@ void RGBShiftConfig::interpolate(RGBShiftConfig &prev, #define MAXVALUE 100 RGBShiftLevel::RGBShiftLevel(RGBShiftEffect *plugin, int *output, int x, int y) - : BC_ISlider(x, y, 0, 200, 200, -MAXVALUE, MAXVALUE, *output) + : BC_ISlider(x, y, 0, xS(200), yS(200), -MAXVALUE, MAXVALUE, *output) { this->plugin = plugin; this->output = output; @@ -152,47 +152,49 @@ int RGBShiftSliderClr::handle_event() RGBShiftWindow::RGBShiftWindow(RGBShiftEffect *plugin) - : PluginClientWindow(plugin, 320, 230, 320, 230, 0) + : PluginClientWindow(plugin, xS(320), yS(230), xS(320), yS(230), 0) { this->plugin = plugin; } void RGBShiftWindow::create_objects() { - int x = 10, y = 10, x1 = 50; - int x2 = 0; int clrBtn_w = 50; + int xs10 = xS(10), xs50 = xS(50); + int ys10 = yS(10), ys30 = yS(30), ys40 = yS(40); + int x = xs10, y = ys10, x1 = xs50; + int x2 = 0; int clrBtn_w = xs50; add_subwindow(new BC_Title(x, y, _("R_dx:"))); add_subwindow(r_dx = new RGBShiftLevel(plugin, &plugin->config.r_dx, x1, y)); - x2 = x1 + r_dx->get_w() + 10; + x2 = x1 + r_dx->get_w() + xs10; add_subwindow(r_dxClr = new RGBShiftSliderClr(plugin, this, x2, y, clrBtn_w, RESET_R_DX)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("R_dy:"))); add_subwindow(r_dy = new RGBShiftLevel(plugin, &plugin->config.r_dy, x1, y)); add_subwindow(r_dyClr = new RGBShiftSliderClr(plugin, this, x2, y, clrBtn_w, RESET_R_DY)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("G_dx:"))); add_subwindow(g_dx = new RGBShiftLevel(plugin, &plugin->config.g_dx, x1, y)); add_subwindow(g_dxClr = new RGBShiftSliderClr(plugin, this, x2, y, clrBtn_w, RESET_G_DX)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("G_dy:"))); add_subwindow(g_dy = new RGBShiftLevel(plugin, &plugin->config.g_dy, x1, y)); add_subwindow(g_dyClr = new RGBShiftSliderClr(plugin, this, x2, y, clrBtn_w, RESET_G_DY)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("B_dx:"))); add_subwindow(b_dx = new RGBShiftLevel(plugin, &plugin->config.b_dx, x1, y)); add_subwindow(b_dxClr = new RGBShiftSliderClr(plugin, this, x2, y, clrBtn_w, RESET_B_DX)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("B_dy:"))); add_subwindow(b_dy = new RGBShiftLevel(plugin, &plugin->config.b_dy, x1, y)); add_subwindow(b_dyClr = new RGBShiftSliderClr(plugin, this, x2, y, clrBtn_w, RESET_B_DY)); - y += 40; + y += ys40; add_subwindow(reset = new RGBShiftReset(plugin, this, x, y)); show_window(); diff --git a/cinelerra-5.1/plugins/rotate/rotate.C b/cinelerra-5.1/plugins/rotate/rotate.C index 7d578b7a..a2033f0f 100644 --- a/cinelerra-5.1/plugins/rotate/rotate.C +++ b/cinelerra-5.1/plugins/rotate/rotate.C @@ -179,7 +179,7 @@ RotateText::RotateText(RotateWindow *window, int y) : BC_TextBox(x, y, - 90, + xS(90), 1, (float)plugin->config.angle) { @@ -263,19 +263,21 @@ int RotateReset::handle_event() RotateWindow::RotateWindow(RotateEffect *plugin) - : PluginClientWindow(plugin, 300, 230, 300, 230, 0) + : PluginClientWindow(plugin, xS(300), yS(230), xS(300), yS(230), 0) { this->plugin = plugin; } -#define RADIUS 30 +#define RADIUS xS(30) void RotateWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10), xs50 = xS(50), xs150 = xS(150); + int ys10 = yS(10), ys20 = yS(20), ys25 = yS(25), ys50 = yS(50), ys60 = yS(60); + int x = xs10, y = ys10; BC_Title *title; add_tool(new BC_Title(x, y, _("Rotate"))); - x += 50; y += 20; + x += xs50; y += ys20; add_tool(toggle0 = new RotateToggle(this, plugin, plugin->config.angle == 0, x, y, 0, "0")); x += RADIUS; y += RADIUS; @@ -287,25 +289,25 @@ void RotateWindow::create_objects() x -= RADIUS; y -= RADIUS; add_tool(toggle270 = new RotateToggle(this, plugin, plugin->config.angle == 270, x, y, 270, "270")); -// add_subwindow(bilinear = new RotateInterpolate(plugin, 10, y + 60)); - x += 150; y -= 50; +// add_subwindow(bilinear = new RotateInterpolate(plugin, xs10, y + ys60)); + x += xs150; y -= ys50; add_tool(fine = new RotateFine(this, plugin, x, y)); - y += fine->get_h() + 10; + y += fine->get_h() + ys10; add_tool(text = new RotateText(this, plugin, x, y)); - y += 25; + y += ys25; add_tool(new BC_Title(x, y, _("Degrees"))); - y += text->get_h() + 10; + y += text->get_h() + ys10; add_subwindow(title = new BC_Title(x, y, _("Pivot (x,y):"))); - y += title->get_h() + 10; + y += title->get_h() + ys10; add_subwindow(this->x = new RotateX(this, plugin, x, y)); - x += this->x->get_w() + 10; + x += this->x->get_w() + xs10; add_subwindow(this->y = new RotateY(this, plugin, x, y)); -// y += this->y->get_h() + 10; - x = 10; +// y += this->y->get_h() + ys10; + x = xs10; add_subwindow(draw_pivot = new RotateDrawPivot(this, plugin, x, y)); - y += 60; + y += ys60; add_subwindow(reset = new RotateReset(plugin, this, x, y)); show_window(); @@ -532,8 +534,8 @@ int RotateEffect::process_buffer(VFrame *frame, //printf("RotateEffect::process_buffer %d draw_pivot=%d\n", __LINE__, config.draw_pivot); // Draw center -#define CENTER_H 20 -#define CENTER_W 20 +#define CENTER_H xS(20) +#define CENTER_W yS(20) #define DRAW_CENTER(components, type, max) \ { \ type **rows = (type**)get_output()->get_rows(); \ diff --git a/cinelerra-5.1/plugins/rumbler/rumbler.C b/cinelerra-5.1/plugins/rumbler/rumbler.C index bb687a09..f76be447 100644 --- a/cinelerra-5.1/plugins/rumbler/rumbler.C +++ b/cinelerra-5.1/plugins/rumbler/rumbler.C @@ -69,7 +69,7 @@ void RumblerConfig::interpolate(RumblerConfig &prev, RumblerConfig &next, } RumblerWindow::RumblerWindow(Rumbler *plugin) - : PluginClientWindow(plugin, 300, 150, 300, 150, 0) + : PluginClientWindow(plugin, xS(300), yS(150), xS(300), yS(150), 0) { this->plugin = plugin; } @@ -80,24 +80,26 @@ RumblerWindow::~RumblerWindow() void RumblerWindow::create_objects() { - int x = 10, x1 = x + 64, x2 =x1 + 100; - int y = 10; + int xs10 = xS(10), xs64 = xS(64), xs100 = xS(100); + int ys10 = yS(10), ys35 = yS(35); + int x = xs10, x1 = x + xs64, x2 = x1 + xs100; + int y = ys10; BC_Title *title; add_subwindow(title = new BC_Title(x1, y, _("rumble"))); add_subwindow(title = new BC_Title(x2, y, _("rate"))); - y += title->get_h() + 10; + y += title->get_h() + ys10; add_subwindow(title = new BC_Title(x, y, _("time:"))); add_subwindow(time_rumble = new RumblerRate(plugin, this, plugin->config.time_rumble, x1, y)); add_subwindow(time_rate = new RumblerRate(plugin, this, plugin->config.time_rate, x2, y)); - y += title->get_h() + 10; + y += title->get_h() + ys10; add_subwindow(title = new BC_Title(x, y, _("space:"))); add_subwindow(space_rumble = new RumblerRate(plugin, this, plugin->config.space_rumble, x1, y)); add_subwindow(space_rate = new RumblerRate(plugin, this, plugin->config.space_rate, x2, y)); - y += title->get_h() + 10; + y += title->get_h() + ys10; add_subwindow(title = new BC_Title(x, y, _("seq:"))); add_subwindow(seq = new RumblerSeq(plugin, this, plugin->config.sequence, x1, y)); - y += 35; + y += ys35; add_subwindow(reset = new RumblerReset(plugin, this, x, y)); show_window(); @@ -117,7 +119,7 @@ void RumblerWindow::update() RumblerRate::RumblerRate(Rumbler *plugin, RumblerWindow *gui, float &value, int x, int y) - : BC_TextBox(x, y, 90, 1, value) + : BC_TextBox(x, y, xS(90), 1, value) { this->plugin = plugin; this->value = &value; @@ -133,7 +135,7 @@ int RumblerRate::handle_event() RumblerSeq::RumblerSeq(Rumbler *plugin, RumblerWindow *gui, int &value, int x, int y) - : BC_TextBox(x, y, 72, 1, value) + : BC_TextBox(x, y, xS(72), 1, value) { this->plugin = plugin; this->value = &value; diff --git a/cinelerra-5.1/plugins/scale/scalewin.C b/cinelerra-5.1/plugins/scale/scalewin.C index 96ef5d8c..479aee67 100644 --- a/cinelerra-5.1/plugins/scale/scalewin.C +++ b/cinelerra-5.1/plugins/scale/scalewin.C @@ -29,7 +29,7 @@ ScaleWin::ScaleWin(ScaleMain *client) - : PluginClientWindow(client, 400, 100, 400, 100, 0) + : PluginClientWindow(client, xS(400), yS(100), xS(400), yS(100), 0) { this->client = client; } @@ -44,17 +44,19 @@ ScaleWin::~ScaleWin() void ScaleWin::create_objects() { - int x0 = 10, y0 = 10; - int y1 = y0 + 25; - int y2 = y1 + 25; + int xs10 = xS(10), xs15 = xS(15), xs20 = xS(20); + int ys10 = yS(10), ys25 = yS(25); + int x0 = xs10, y0 = ys10; + int y1 = y0 + ys25; + int y2 = y1 + ys25; BC_Title *title = new BC_Title(x0, y1, _("Scale:")); add_tool(title); - int x1 = x0 + title->get_w() + 10; + int x1 = x0 + title->get_w() + xs10; add_tool(use_scale = new ScaleUseScale(this, client, x1, y1)); - int x2 = x1 + use_scale->get_w() + 10; + int x2 = x1 + use_scale->get_w() + xs10; x_factor = new ScaleXFactor(this, client, x2, y1); x_factor->create_objects(); - int x3 = x2 + x_factor->get_w() + 20; + int x3 = x2 + x_factor->get_w() + xs20; y_factor = new ScaleYFactor(this, client, x3, y1); y_factor->create_objects(); add_tool(constrain = new ScaleConstrain(client, x1, y2)); @@ -64,11 +66,11 @@ void ScaleWin::create_objects() add_tool(use_size = new ScaleUseSize(this, client, x1, y0)); width = new ScaleWidth(this, client, x2, y0); width->create_objects(); - int x = x2 + width->get_w() + 3; + int x = x2 + width->get_w() + xS(3); add_tool(new BC_Title(x, y0, _("x"))); height= new ScaleHeight(this, client, x3, y0); height->create_objects(); - int x4 = x3 + height->get_w() + 15; + int x4 = x3 + height->get_w() + xs15; add_tool(pulldown = new FrameSizePulldown(client->server->mwindow->theme, width->get_textbox(), height->get_textbox(), x4, y0)); @@ -78,7 +80,7 @@ void ScaleWin::create_objects() ScaleXFactor::ScaleXFactor(ScaleWin *win, ScaleMain *client, int x, int y) - : BC_TumbleTextBox(win, (float)client->config.x_factor, 0., 100., x, y, 100) + : BC_TumbleTextBox(win, (float)client->config.x_factor, 0., 100., x, y, xS(100)) { //printf("ScaleXFactor::ScaleXFactor %f\n", client->config.x_factor); this->client = client; @@ -113,7 +115,7 @@ int ScaleXFactor::handle_event() ScaleYFactor::ScaleYFactor(ScaleWin *win, ScaleMain *client, int x, int y) - : BC_TumbleTextBox(win, (float)client->config.y_factor, 0., 100., x, y, 100) + : BC_TumbleTextBox(win, (float)client->config.y_factor, 0., 100., x, y, xS(100)) { this->client = client; this->win = win; @@ -145,7 +147,7 @@ int ScaleYFactor::handle_event() ScaleWidth::ScaleWidth(ScaleWin *win, ScaleMain *client, int x, int y) - : BC_TumbleTextBox(win, client->config.width, 0, 100000, x, y, 90) + : BC_TumbleTextBox(win, client->config.width, 0, 100000, x, y, xS(90)) { //printf("ScaleWidth::ScaleWidth %f\n", client->config.x_factor); this->client = client; @@ -173,7 +175,7 @@ int ScaleWidth::handle_event() ScaleHeight::ScaleHeight(ScaleWin *win, ScaleMain *client, int x, int y) - : BC_TumbleTextBox(win, client->config.height, 0, 100000, x, y, 90) + : BC_TumbleTextBox(win, client->config.height, 0, 100000, x, y, xS(90)) { this->client = client; this->win = win; diff --git a/cinelerra-5.1/plugins/scaleratio/scaleratiowin.C b/cinelerra-5.1/plugins/scaleratio/scaleratiowin.C index 10961a10..155b5944 100644 --- a/cinelerra-5.1/plugins/scaleratio/scaleratiowin.C +++ b/cinelerra-5.1/plugins/scaleratio/scaleratiowin.C @@ -29,7 +29,7 @@ ScaleRatioWin::ScaleRatioWin(ScaleRatioMain *client) - : PluginClientWindow(client, 400, 320, 400, 320, 0) + : PluginClientWindow(client, xS(400), yS(320), xS(400), yS(320), 0) { this->client = client; } @@ -40,96 +40,98 @@ ScaleRatioWin::~ScaleRatioWin() void ScaleRatioWin::create_objects() { - int x = 10, y = 10; - int x0 = x, x1 = x0 + 50; + int xs10 = xS(10), xs50 = xS(50); + int ys5 = yS(5), ys8 = yS(8), ys10 = yS(10), ys30 = yS(30); + int x = xs10, y = ys10; + int x0 = x, x1 = x0 + xs50; int y0 = y; client->load_configuration(); add_tool(new BC_Title(x0, y0, _("In R:"))); add_tool(in_r = new ScaleRatioRatio(this, client, x1, y0, &client->config.in_r)); in_r->create_objects(); - y0 += in_r->get_th() + 10; + y0 += in_r->get_th() + ys10; add_tool(new BC_Title(x0, y0, _("In W:"))); in_w = new ScaleRatioCoord(this, client, x1, y0, 0, &client->config.in_w); in_w->create_objects(); - y0 += in_w->get_h() + 8; + y0 += in_w->get_h() + ys8; add_tool(new BC_Title(x0, y0, _("In H:"))); in_h = new ScaleRatioCoord(this, client, x1, y0, 0, &client->config.in_h); in_h->create_objects(); x0 = get_w()/2; y0 = y; - x1 = x0 + 50; + x1 = x0 + xs50; add_tool(new BC_Title(x0, y0, _("Out R:"))); add_tool(out_r = new ScaleRatioRatio(this, client, x1, y0, &client->config.out_r)); out_r->create_objects(); - y0 += out_r->get_th() + 10; + y0 += out_r->get_th() + ys10; add_tool(new BC_Title(x0, y0, _("Out W:"))); out_w = new ScaleRatioCoord(this, client, x1, y0, 0, &client->config.out_w); out_w->create_objects(); - y0 += out_w->get_h() + 8; + y0 += out_w->get_h() + ys8; add_tool(new BC_Title(x0, y0, _("Out H:"))); out_h = new ScaleRatioCoord(this, client, x1, y0, 0, &client->config.out_h); out_h->create_objects(); - y0 += out_h->get_h() + 8; + y0 += out_h->get_h() + ys8; - y = y0 + 5; + y = y0 + ys5; add_tool(apply_button = new ScaleRatioApply(this, x, y)); - int x2 = x + apply_button->get_w() + 50; + int x2 = x + apply_button->get_w() + xs50; add_tool(type_popup = new ScaleRatioType(this, x2, y, &client->config.type)); type_popup->create_objects(); - y += apply_button->get_h() + 30; + y += apply_button->get_h() + ys30; x0 = x; y0 = y; - x1 = x0 + 50; + x1 = x0 + xs50; add_tool(new BC_Title(x0, y0, _("Src X:"))); src_x = new ScaleRatioCoord(this, client, x1, y0, 1, &client->config.src_x); src_x->create_objects(); - y0 += 30; + y0 += ys30; add_tool(new BC_Title(x0, y0, _("Src Y:"))); src_y = new ScaleRatioCoord(this, client, x1, y0, 1, &client->config.src_y); src_y->create_objects(); - y0 += 30; + y0 += ys30; add_tool(new BC_Title(x0, y0, _("Src W:"))); src_w = new ScaleRatioCoord(this, client, x1, y0, 0, &client->config.src_w); src_w->create_objects(); - y0 += 30; + y0 += ys30; add_tool(new BC_Title(x0, y0, _("Src H:"))); src_h = new ScaleRatioCoord(this, client, x1, y0, 0, &client->config.src_h); src_h->create_objects(); - y0 += 30; + y0 += ys30; x0 = get_w()/2; - x1 = x0 + 50; + x1 = x0 + xs50; y0 = y; add_tool(new BC_Title(x0, y0, _("Dst X:"))); dst_x = new ScaleRatioCoord(this, client, x1, y0, 1, &client->config.dst_x); dst_x->create_objects(); - y0 += 30; + y0 += ys30; add_tool(new BC_Title(x0, y0, _("Dst Y:"))); dst_y = new ScaleRatioCoord(this, client, x1, y0, 1, &client->config.dst_y); dst_y->create_objects(); - y0 += 30; + y0 += ys30; add_tool(new BC_Title(x0, y0, _("Dst W:"))); dst_w = new ScaleRatioCoord(this, client, x1, y0, 0, &client->config.dst_w); dst_w->create_objects(); - y0 += 30; + y0 += ys30; add_tool(new BC_Title(x0, y0, _("Dst H:"))); dst_h = new ScaleRatioCoord(this, client, x1, y0, 0, &client->config.dst_h); dst_h->create_objects(); - y0 += 30; + y0 += ys30; show_window(); flush(); @@ -139,7 +141,7 @@ void ScaleRatioWin::create_objects() ScaleRatioCoord::ScaleRatioCoord(ScaleRatioWin *win, ScaleRatioMain *client, int x, int y, int s, float *value) - : BC_TumbleTextBox(win, (int)*value, (int)-10000*s, (int)10000, x, y, 100) + : BC_TumbleTextBox(win, (int)*value, (int)-10000*s, (int)10000, x, y, xS(100)) { this->client = client; this->win = win; @@ -159,7 +161,7 @@ int ScaleRatioCoord::handle_event() ScaleRatioTumbler::ScaleRatioTumbler(ScaleRatioRatio *ratio, int value, int x, int y) - : BC_TumbleTextBox(ratio->win, value, 0, 10000, x, y, 45) + : BC_TumbleTextBox(ratio->win, value, 0, 10000, x, y, xS(45)) { this->ratio = ratio; } @@ -176,7 +178,7 @@ int ScaleRatioTumbler::handle_event() ScaleRatioRatio::ScaleRatioRatio(ScaleRatioWin *win, ScaleRatioMain *client, int x, int y, float *value) - : BC_TextBox(x, y, 100, 1, *value) + : BC_TextBox(x, y, xS(100), 1, *value) { this->client = client; this->win = win; @@ -208,12 +210,12 @@ void ScaleRatioRatio::create_objects() int tx = BC_TextBox::get_x(); int ty = BC_TextBox::get_y(); int x = tx; - int y = ty + BC_TextBox::get_h() + 5; + int y = ty + BC_TextBox::get_h() + yS(5); float faw = 0, fah = 0; MWindow::create_aspect_ratio(faw, fah, *value*1000000, 1000000); aw = new ScaleRatioTumbler(this, faw, x, y); aw->create_objects(); - x += aw->get_w() + 5; + x += aw->get_w() + xS(5); ah = new ScaleRatioTumbler(this, fah, x, y); ah->create_objects(); x += ah->get_w(); @@ -253,7 +255,7 @@ int ScaleRatioTypeItem::handle_event() ScaleRatioType::ScaleRatioType(ScaleRatioWin *win, int x, int y, int *value) - : BC_PopupMenu(x, y, 180, "", 1) + : BC_PopupMenu(x, y, xS(180), "", 1) { this->win = win; this->value = value; diff --git a/cinelerra-5.1/plugins/shapewipe/shapewipe.C b/cinelerra-5.1/plugins/shapewipe/shapewipe.C index e372f30a..ca675e2d 100644 --- a/cinelerra-5.1/plugins/shapewipe/shapewipe.C +++ b/cinelerra-5.1/plugins/shapewipe/shapewipe.C @@ -164,7 +164,7 @@ ShapeWipeFeather::ShapeWipeFeather(ShapeWipeMain *client, ShapeWipeWindow *window, int x, int y) : BC_TumbleTextBox(window, bclip(client->config.feather, SHAPE_FMIN, SHAPE_FMAX), - SHAPE_FMIN, SHAPE_FMAX, x, y, 64, 3) + SHAPE_FMIN, SHAPE_FMAX, x, y, xS(64), yS(3)) { this->client = client; this->window = window; @@ -241,7 +241,7 @@ int ShapeWipeShape::handle_event() ShapeWipeWindow::ShapeWipeWindow(ShapeWipeMain *plugin) - : PluginClientWindow(plugin, 425, 215, 425, 215, 0) + : PluginClientWindow(plugin, xS(425), yS(215), xS(425), yS(215), 0) { this->plugin = plugin; shape_feather = 0; @@ -258,7 +258,7 @@ void ShapeWipeWindow::create_objects() { BC_Title *title = 0; lock_window("ShapeWipeWindow::create_objects"); - int pad = 10, margin = 10; + int pad = xS(10), margin = xS(10); int x = margin, y = margin; int ww = get_w() - 2*margin; @@ -268,13 +268,13 @@ void ShapeWipeWindow::create_objects() } BC_TitleBar *bar; - add_subwindow(bar = new BC_TitleBar(x, y, ww, 20, 10, + add_subwindow(bar = new BC_TitleBar(x, y, ww, xS(20), yS(10), _("Wipe"), MEDIUMFONT)); y += bar->get_h() + pad; add_subwindow(title = new BC_Title(x, y, _("Shape:"))); - int x1 = 85, x2 = 355, x3 = 386; - shape_text = new ShapeWipeShape(plugin, this, x1, y, x2-x1, 200); + int x1 = xS(85), x2 = xS(355), x3 = xS(386); + shape_text = new ShapeWipeShape(plugin, this, x1, y, x2-x1, yS(200)); shape_text->create_objects(); add_subwindow(new ShapeWipeTumble(plugin, this, x3, y)); y += shape_text->get_h() + pad; @@ -296,7 +296,7 @@ void ShapeWipeWindow::create_objects() plugin, this, x, y)); y += aspect_ratio->get_h() + pad; - add_subwindow(bar = new BC_TitleBar(x, y, ww, 20, 10, + add_subwindow(bar = new BC_TitleBar(x, y, ww, xS(20), yS(10), _("Direction"), MEDIUMFONT)); y += bar->get_h() + pad; x = margin; diff --git a/cinelerra-5.1/plugins/sharpen/sharpenwindow.C b/cinelerra-5.1/plugins/sharpen/sharpenwindow.C index 67f31bcf..61ab6b50 100644 --- a/cinelerra-5.1/plugins/sharpen/sharpenwindow.C +++ b/cinelerra-5.1/plugins/sharpen/sharpenwindow.C @@ -33,7 +33,7 @@ SharpenWindow::SharpenWindow(SharpenMain *client) - : PluginClientWindow(client, 280, 190, 280, 190, 0) //195 was 150 + : PluginClientWindow(client, xS(280), yS(190), xS(280), yS(190), 0) //195 was 150 { this->client = client; } @@ -44,26 +44,28 @@ SharpenWindow::~SharpenWindow() void SharpenWindow::create_objects() { - int x = 10, y = 10; - int x1 = 0; int clrBtn_w = 50; - int defaultBtn_w = 100; + int xs10 = xS(10), xs50 = xS(50), xs100 = xS(100); + int ys10 = yS(10), ys20 = yS(20), ys30 = yS(30), ys40 = yS(40); + int x = xs10, y = ys10; + int x1 = 0; int clrBtn_w = xs50; + int defaultBtn_w = xs100; add_tool(new BC_Title(x, y, _("Sharpness"))); - y += 20; + y += ys20; add_tool(sharpen_slider = new SharpenSlider(client, &(client->config.sharpness), x, y)); - x1 = x + sharpen_slider->get_w() + 10; + x1 = x + sharpen_slider->get_w() + xs10; add_subwindow(sharpen_sliderClr = new SharpenSliderClr(client, this, x1, y, clrBtn_w)); - y += 30; + y += ys30; add_tool(sharpen_interlace = new SharpenInterlace(client, x, y)); - y += 30; + y += ys30; add_tool(sharpen_horizontal = new SharpenHorizontal(client, x, y)); - y += 30; + y += ys30; add_tool(sharpen_luminance = new SharpenLuminance(client, x, y)); - y += 40; + y += ys40; add_tool(reset = new SharpenReset(client, this, x, y)); add_subwindow(default_settings = new SharpenDefaultSettings(client, this, - (280 - 10 - defaultBtn_w), y, defaultBtn_w)); + (xS(280) - xs10 - defaultBtn_w), y, defaultBtn_w)); show_window(); flush(); @@ -90,8 +92,8 @@ SharpenSlider::SharpenSlider(SharpenMain *client, float *output, int x, int y) : BC_ISlider(x, y, 0, - 200, - 200, + xS(200), + yS(200), 0, MAXSHARPNESS, (int)*output, diff --git a/cinelerra-5.1/plugins/shiftinterlace/shiftinterlace.C b/cinelerra-5.1/plugins/shiftinterlace/shiftinterlace.C index 4d578886..c7b4e0ba 100644 --- a/cinelerra-5.1/plugins/shiftinterlace/shiftinterlace.C +++ b/cinelerra-5.1/plugins/shiftinterlace/shiftinterlace.C @@ -86,10 +86,10 @@ void ShiftInterlaceConfig::interpolate(ShiftInterlaceConfig &prev, ShiftInterlaceWindow::ShiftInterlaceWindow(ShiftInterlaceMain *plugin) : PluginClientWindow(plugin, - 370, - 110, - 370, - 110, + xS(370), + yS(110), + xS(370), + yS(110), 0) { this->plugin = plugin; @@ -98,21 +98,23 @@ ShiftInterlaceWindow::ShiftInterlaceWindow(ShiftInterlaceMain *plugin) void ShiftInterlaceWindow::create_objects() { - int x = 10, y = 10; - int margin = 30; - int x1 = 0; int clrBtn_w = 50; + int xs10 = xS(10), xs30 = xS(30), xs50 = xS(50), xs90 = xS(90); + int ys10 = yS(10), ys40 = yS(40); + int x = xs10, y = ys10; + int margin = xs30; + int x1 = 0; int clrBtn_w = xs50; add_subwindow(new BC_Title(x, y, _("Odd offset:"))); - add_subwindow(odd_offset = new ShiftInterlaceOdd(plugin, x + 90, y)); - x1 = x + 90 + odd_offset->get_w() + 10; + add_subwindow(odd_offset = new ShiftInterlaceOdd(plugin, x + xs90, y)); + x1 = x + xs90 + odd_offset->get_w() + xs10; add_subwindow(odd_offsetClr = new ShiftInterlaceSliderClr(plugin, this, x1, y, clrBtn_w, RESET_ODD_OFFSET)); y += margin; add_subwindow(new BC_Title(x, y, _("Even offset:"))); - add_subwindow(even_offset = new ShiftInterlaceEven(plugin, x + 90, y)); + add_subwindow(even_offset = new ShiftInterlaceEven(plugin, x + xs90, y)); add_subwindow(even_offsetClr = new ShiftInterlaceSliderClr(plugin, this, x1, y, clrBtn_w, RESET_EVEN_OFFSET)); - y += 40; + y += ys40; add_subwindow(reset = new ShiftInterlaceReset(plugin, this, x, y)); show_window(); flush(); @@ -140,8 +142,8 @@ ShiftInterlaceOdd::ShiftInterlaceOdd(ShiftInterlaceMain *plugin, int x, int y) : BC_ISlider(x, y, 0, - 200, - 200, + xS(200), + yS(200), -100, 100, plugin->config.odd_offset) @@ -162,8 +164,8 @@ ShiftInterlaceEven::ShiftInterlaceEven(ShiftInterlaceMain *plugin, int x, int y) : BC_ISlider(x, y, 0, - 200, - 200, + xS(200), + yS(200), -100, 100, plugin->config.even_offset) diff --git a/cinelerra-5.1/plugins/sketcher/sketcherwindow.C b/cinelerra-5.1/plugins/sketcher/sketcherwindow.C index 2235260c..f62802a7 100644 --- a/cinelerra-5.1/plugins/sketcher/sketcherwindow.C +++ b/cinelerra-5.1/plugins/sketcher/sketcherwindow.C @@ -39,8 +39,8 @@ #define AltMask Mod1Mask -#define COLOR_W 40 -#define COLOR_H 24 +#define COLOR_W xS(40) +#define COLOR_H yS(24) const char *SketcherPoint::types[] = { N_("off"), @@ -79,7 +79,7 @@ int SketcherCurvePenItem::handle_event() } SketcherCurvePen::SketcherCurvePen(SketcherWindow *gui, int x, int y, int pen) - : BC_PopupMenu(x,y,100,_(cv_pen[pen])) + : BC_PopupMenu(x,y,xS(100),_(cv_pen[pen])) { this->gui = gui; this->pen = pen; @@ -256,7 +256,7 @@ void SketcherCurveWidth::update(int width) SketcherWindow::SketcherWindow(Sketcher *plugin) - : PluginClientWindow(plugin, 380, 620, 380, 620, 0) + : PluginClientWindow(plugin, xS(380), yS(620), xS(380), yS(620), 0) { this->plugin = plugin; this->title_pen = 0; this->curve_pen = 0; @@ -293,7 +293,7 @@ SketcherWindow::~SketcherWindow() void SketcherWindow::create_objects() { - int x = 10, y = 10, dy = 0, x1, y1; + int x = xS(10), y = yS(10), dy = 0, x1, y1; int margin = plugin->get_theme()->widget_border; BC_Title *title; int ci = plugin->config.cv_selected; @@ -301,7 +301,7 @@ void SketcherWindow::create_objects() ci = plugin->new_curve(); SketcherCurve *cv = plugin->config.curves[ci]; - reset_curves = new SketcherResetCurves(this, plugin, x1=x, y+3); + reset_curves = new SketcherResetCurves(this, plugin, x1=x, y+yS(3)); add_subwindow(reset_curves); dy = bmax(dy,reset_curves->get_h()); x1 += reset_curves->get_w() + 2*margin; const char *curve_text = _("Curve"); @@ -328,9 +328,9 @@ void SketcherWindow::create_objects() add_subwindow(curve_up); dy = bmax(dy,curve_up->get_h()); x1 += curve_up->get_w() + 4*margin; y1 = BC_Title::calculate_h(this, _("Pen:")); - title_pen = new BC_Title(x1+30, y+dy-y1, _("Pen:")); + title_pen = new BC_Title(x1+xS(30), y+dy-y1, _("Pen:")); add_subwindow(title_pen); dy = bmax(dy,title_pen->get_h()); - int x2 = (get_w()+x1)/2 + 20; + int x2 = (get_w()+x1)/2 + xS(20); y1 = BC_Title::calculate_h(this, _("Color:")); title_color = new BC_Title(x2, y+dy-y1, _("Color:")); add_subwindow(title_color); dy = bmax(dy,title_color->get_h()); @@ -352,17 +352,17 @@ void SketcherWindow::create_objects() curve_list->update(ci); BC_Bar *bar; - bar = new BC_Bar(x, y, get_w()-2*x); + bar = new BC_Bar(x, y, get_w()-xS(2)*x); add_subwindow(bar); dy = bmax(dy,bar->get_h()); - bar = new BC_Bar(x, y+=dy, get_w()-2*x); + bar = new BC_Bar(x, y+=dy, get_w()-xS(2)*x); add_subwindow(bar); dy = bmax(dy,bar->get_h()); - y += dy + 2*margin; + y += dy + yS(2)*margin; int pi = plugin->config.pt_selected; SketcherPoint *pt = pi >= 0 && pi < cv->points.size() ? cv->points[pi] : 0; - reset_points = new SketcherResetPoints(this, plugin, x1=x, y+3); + reset_points = new SketcherResetPoints(this, plugin, x1=x, y+yS(3)); add_subwindow(reset_points); dy = bmax(dy,reset_points->get_h()); - x1 += reset_points->get_w() + 2*margin; + x1 += reset_points->get_w() + xS(2)*margin; if( plugin->config.drag ) { if( !grab(plugin->server->mwindow->cwindow->gui) ) { eprintf("drag enabled, but compositor already grabbed\n"); @@ -371,7 +371,7 @@ void SketcherWindow::create_objects() } drag = new SketcherDrag(this, x1, y); add_subwindow(drag); dy = bmax(dy,drag->get_h()); - x1 += drag->get_w() + 2*margin; + x1 += drag->get_w() + xS(2)*margin; int arc = pt ? pt->arc : ARC_LINE; point_type = new SketcherPointType(this, x1, y, arc); add_subwindow(point_type); dy = bmax(dy,point_type->get_h()); @@ -392,15 +392,15 @@ void SketcherWindow::create_objects() x1 += new_point->get_w() + margin; point_up = new SketcherPointUp(this, x1, y); add_subwindow(point_up); dy = bmax(dy,point_up->get_h()); - x1 += point_up->get_w() + 2*margin; + x1 += point_up->get_w() + xS(2)*margin; title_x = new BC_Title(x1, y, _("X:")); add_subwindow(title_x); dy = bmax(dy,title_x->get_h()); x1 += title_x->get_w() + margin; point_x = new SketcherPointX(this, x1, y, !pt ? 0.f : pt->x); point_x->create_objects(); dy = bmax(dy, point_x->get_h()); - x2 = x1 + point_x->get_w() + 2*margin + 10; + x2 = x1 + point_x->get_w() + xS(2)*margin + xS(10); y1 = BC_Title::calculate_h(this, _("ID:")); - title_id = new BC_Title(x2+16, y+dy-y1, _("ID:")); + title_id = new BC_Title(x2+xS(16), y+dy-y1, _("ID:")); add_subwindow(title_id); dy = bmax(dy, title_id->get_h()); y += dy + margin; dy = 0; @@ -409,7 +409,7 @@ void SketcherWindow::create_objects() x1 += del_point->get_w() + margin; point_dn = new SketcherPointDn(this, x1, y); add_subwindow(point_dn); dy = bmax(dy,point_dn->get_h()); - x1 += point_dn->get_w() + 2*margin; + x1 += point_dn->get_w() + xS(2)*margin; title_y = new BC_Title(x1, y, _("Y:")); add_subwindow(title_y); dy = bmax(dy,title_y->get_h()); x1 += title_y->get_w() + margin; @@ -417,12 +417,12 @@ void SketcherWindow::create_objects() point_y->create_objects(); dy = bmax(dy, point_y->get_h()); point_id = new SketcherPointId(this, x2, y, !pt ? 0 : pt->id); point_id->create_objects(); dy = bmax(dy, point_id->get_h()); - y += dy + margin + 5; dy = 0; + y += dy + margin + yS(5); dy = 0; point_list->update(pi); - bar = new BC_Bar(x, y, get_w()-2*x); + bar = new BC_Bar(x, y, get_w()-xS(2)*x); add_subwindow(bar); dy = bmax(dy,bar->get_h()); - y += dy + 2*margin; + y += dy + yS(2)*margin; add_subwindow(notes0 = new BC_Title(x, y, _("\n" @@ -431,21 +431,21 @@ void SketcherWindow::create_objects() "Ctrl=\n" "Ctrl+Alt=\n" "Ctrl+Shift="))); dy = bmax(dy, notes0->get_h()); - add_subwindow(notes1 = new BC_Title(x+100, y, + add_subwindow(notes1 = new BC_Title(x+xS(100), y, _(" LMB\n" "new line point\n" "select point\n" "drag point\n" "drag all curves\n" "new fill point"))); dy = bmax(dy, notes1->get_h()); - add_subwindow(notes2 = new BC_Title(x+220, y, + add_subwindow(notes2 = new BC_Title(x+xS(220), y, _(" RMB\n" "new arc point\n" "select curve\n" "drag curve\n" "new curve\n" "new off point"))); dy = bmax(dy, notes2->get_h()); - y += dy + margin + 10; + y += dy + margin + yS(10); add_subwindow(notes3 = new BC_Title(x, y, "Key DEL= delete point, +Shift= delete curve\n")); @@ -732,15 +732,15 @@ int SketcherWindow::keypress_event() SketcherCurveList::SketcherCurveList(SketcherWindow *gui, Sketcher *plugin, int x, int y) - : BC_ListBox(x, y, 360, 130, LISTBOX_TEXT) + : BC_ListBox(x, y, xS(360), yS(130), LISTBOX_TEXT) { this->gui = gui; this->plugin = plugin; - col_titles[CV_ID] = _("ID"); col_widths[CV_ID] = 64; - col_titles[CV_RAD] = _("width"); col_widths[CV_RAD] = 64; - col_titles[CV_PEN] = _("pen"); col_widths[CV_PEN] = 64; - col_titles[CV_CLR] = _("color"); col_widths[CV_CLR] = 80; - col_titles[CV_ALP] = _("alpha"); col_widths[CV_ALP] = 64; + col_titles[CV_ID] = _("ID"); col_widths[CV_ID] = xS(64); + col_titles[CV_RAD] = _("width"); col_widths[CV_RAD] = xS(64); + col_titles[CV_PEN] = _("pen"); col_widths[CV_PEN] = xS(64); + col_titles[CV_CLR] = _("color"); col_widths[CV_CLR] = xS(80); + col_titles[CV_ALP] = _("alpha"); col_widths[CV_ALP] = xS(64); } SketcherCurveList::~SketcherCurveList() { @@ -830,7 +830,7 @@ void SketcherCurveList::add_curve(const char *id, const char *pen, } SketcherNewCurve::SketcherNewCurve(SketcherWindow *gui, Sketcher *plugin, int x, int y) - : BC_GenericButton(x, y, 64, _("New")) + : BC_GenericButton(x, y, xS(64), _("New")) { this->gui = gui; this->plugin = plugin; @@ -856,7 +856,7 @@ int SketcherNewCurve::handle_event() } SketcherDelCurve::SketcherDelCurve(SketcherWindow *gui, Sketcher *plugin, int x, int y) - : BC_GenericButton(x, y, 64, C_("Del")) + : BC_GenericButton(x, y, xS(64), C_("Del")) { this->gui = gui; this->plugin = plugin; @@ -967,7 +967,7 @@ int SketcherPointTypeItem::handle_event() } SketcherPointType::SketcherPointType(SketcherWindow *gui, int x, int y, int arc) - : BC_PopupMenu(x,y,100,_(pt_type[arc])) + : BC_PopupMenu(x,y,xS(100),_(pt_type[arc])) { this->gui = gui; this->type = arc; @@ -984,14 +984,14 @@ void SketcherPointType::update(int arc) SketcherPointList::SketcherPointList(SketcherWindow *gui, Sketcher *plugin, int x, int y) - : BC_ListBox(x, y, 360, 130, LISTBOX_TEXT) + : BC_ListBox(x, y, xS(360), yS(130), LISTBOX_TEXT) { this->gui = gui; this->plugin = plugin; - col_titles[PT_ID] = _("ID"); col_widths[PT_ID] = 50; - col_titles[PT_TY] = _("Type"); col_widths[PT_TY] = 80; - col_titles[PT_X] = _("X"); col_widths[PT_X] = 90; - col_titles[PT_Y] = _("Y"); col_widths[PT_Y] = 90; + col_titles[PT_ID] = _("ID"); col_widths[PT_ID] = xS(50); + col_titles[PT_TY] = _("Type"); col_widths[PT_TY] = xS(80); + col_titles[PT_X] = _("X"); col_widths[PT_X] = xS(90); + col_titles[PT_Y] = _("Y"); col_widths[PT_Y] = xS(90); set_selection_mode(LISTBOX_MULTIPLE); } SketcherPointList::~SketcherPointList() @@ -1212,7 +1212,7 @@ int SketcherDrag::handle_event() } SketcherNewPoint::SketcherNewPoint(SketcherWindow *gui, Sketcher *plugin, int x, int y) - : BC_GenericButton(x, y, 64, _("New")) + : BC_GenericButton(x, y, xS(64), _("New")) { this->gui = gui; this->plugin = plugin; @@ -1231,7 +1231,7 @@ int SketcherNewPoint::handle_event() } SketcherDelPoint::SketcherDelPoint(SketcherWindow *gui, Sketcher *plugin, int x, int y) - : BC_GenericButton(x, y, 64, C_("Del")) + : BC_GenericButton(x, y, xS(64), C_("Del")) { this->gui = gui; this->plugin = plugin; diff --git a/cinelerra-5.1/plugins/slide/slide.C b/cinelerra-5.1/plugins/slide/slide.C index 99a2df83..9e6b6d0e 100644 --- a/cinelerra-5.1/plugins/slide/slide.C +++ b/cinelerra-5.1/plugins/slide/slide.C @@ -137,10 +137,10 @@ int SlideOut::handle_event() SlideWindow::SlideWindow(SlideMain *plugin) : PluginClientWindow(plugin, - 320, - 100, - 320, - 100, + xS(320), + yS(100), + xS(320), + yS(100), 0) { this->plugin = plugin; @@ -153,28 +153,30 @@ SlideWindow::SlideWindow(SlideMain *plugin) void SlideWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10), xs100 = xS(100); + int ys10 = yS(10), ys30 = yS(30); + int x = xs10, y = ys10; add_subwindow(new BC_Title(x, y, _("Direction:"))); - x += 100; + x += xs100; add_subwindow(left = new SlideLeft(plugin, this, x, y)); - x += 100; + x += xs100; add_subwindow(right = new SlideRight(plugin, this, x, y)); - y += 30; - x = 10; + y += ys30; + x = xs10; add_subwindow(new BC_Title(x, y, _("Direction:"))); - x += 100; + x += xs100; add_subwindow(in = new SlideIn(plugin, this, x, y)); - x += 100; + x += xs100; add_subwindow(out = new SlideOut(plugin, this, x, diff --git a/cinelerra-5.1/plugins/spectrogram/spectrogram.C b/cinelerra-5.1/plugins/spectrogram/spectrogram.C index 7b81bbeb..15730e64 100644 --- a/cinelerra-5.1/plugins/spectrogram/spectrogram.C +++ b/cinelerra-5.1/plugins/spectrogram/spectrogram.C @@ -125,9 +125,7 @@ int SpectrogramLevel::handle_event() SpectrogramMode::SpectrogramMode(Spectrogram *plugin, int x, int y) - : BC_PopupMenu(x, - y, - 120, + : BC_PopupMenu(x, y, xS(120), mode_to_text(plugin->config.mode)) { this->plugin = plugin; @@ -195,13 +193,8 @@ int SpectrogramHistory::handle_event() SpectrogramWindowSize::SpectrogramWindowSize(Spectrogram *plugin, - int x, - int y, - char *text) - : BC_PopupMenu(x, - y, - 80, - text) + int x, int y, char *text) + : BC_PopupMenu(x, y, xS(120), text) { this->plugin = plugin; } @@ -266,10 +259,7 @@ int SpectrogramNormalize::handle_event() SpectrogramFreq::SpectrogramFreq(Spectrogram *plugin, int x, int y) - : BC_TextBox(x, - y, - 100, - 1, + : BC_TextBox(x, y, xS(100), 1, (int)plugin->config.frequency) { this->plugin = plugin; @@ -345,8 +335,8 @@ void SpectrogramCanvas::calculate_point() { int x = get_cursor_x(); int y = get_cursor_y(); - CLAMP(x, 0, get_w() - 1); - CLAMP(y, 0, get_h() - 1); + CLAMP(x, 0, get_w()-1); + CLAMP(y, 0, get_h()-1); ((SpectrogramWindow*)plugin->thread->window)->calculate_frequency( x, @@ -377,12 +367,8 @@ void SpectrogramCanvas::draw_overlay() SpectrogramWindow::SpectrogramWindow(Spectrogram *plugin) - : PluginClientWindow(plugin, - plugin->w, - plugin->h, - 320, - 320, - 1) + : PluginClientWindow(plugin, plugin->w, plugin->h, + xS(320), yS(320), 1) { this->plugin = plugin; probe_x = probe_y = -1; @@ -403,11 +389,7 @@ void SpectrogramWindow::create_objects() add_subwindow(canvas = new SpectrogramCanvas(plugin, - 0, - 0, - get_w(), - get_h() - - BC_Pot::calculate_h() * 2 - + 0, 0, get_w(), get_h() - BC_Pot::calculate_h() * 2 - plugin->get_theme()->widget_border * 3)); canvas->set_cursor(CROSS_CURSOR, 0, 0); @@ -666,8 +648,8 @@ Spectrogram::Spectrogram(PluginServer *server) { reset(); timer = new Timer; - w = 640; - h = 480; + w = xS(640); + h = yS(480); } Spectrogram::~Spectrogram() @@ -1030,10 +1012,10 @@ void Spectrogram::update_gui() float db = ptr->data[ MIN((w - x2), ptr->data_size - 1)]; //if(x2 > w - 10) printf("%.02f ", ptr->data[x2]); - int y2 = h - 1 - (int)((db - INFINITYGAIN) / + int y2 = h-1 - (int)((db - INFINITYGAIN) / (0 - INFINITYGAIN) * h); - CLAMP(y2, 0, h - 1); + CLAMP(y2, 0, h-1); if(number) { diff --git a/cinelerra-5.1/plugins/spherecam/spherecam.C b/cinelerra-5.1/plugins/spherecam/spherecam.C index 692c1a84..dcb455b3 100644 --- a/cinelerra-5.1/plugins/spherecam/spherecam.C +++ b/cinelerra-5.1/plugins/spherecam/spherecam.C @@ -140,8 +140,8 @@ SphereCamSlider::SphereCamSlider(SphereCamMain *client, : BC_FSlider(x, y, 0, - gui->get_w() / 2 - client->get_theme()->widget_border * 3 - 100, - gui->get_w() / 2 - client->get_theme()->widget_border * 3 - 100, + gui->get_w() / 2 - client->get_theme()->widget_border * xS(3) - xS(100), + gui->get_w() / 2 - client->get_theme()->widget_border * xS(3) - xS(100), min, max, *output) @@ -168,7 +168,7 @@ SphereCamText::SphereCamText(SphereCamMain *client, float *output, int x, int y) - : BC_TextBox(x, y, 100, 1, *output) + : BC_TextBox(x, y, xS(100), 1, *output) { this->gui = gui; this->client = client; @@ -238,7 +238,7 @@ int SphereCamMode::calculate_w(SphereCamGUI *gui) result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(SphereCamConfig::EQUIRECT))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(SphereCamConfig::DO_NOTHING))); result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(SphereCamConfig::ALIGN))); - return result + 50; + return result + xS(50); } int SphereCamMode::from_text(char *text) @@ -270,7 +270,7 @@ const char* SphereCamMode::to_text(int mode) SphereCamGUI::SphereCamGUI(SphereCamMain *client) - : PluginClientWindow(client, 640, 600, 640, 600, 0) + : PluginClientWindow(client, xS(640), yS(600), xS(640), yS(600), 0) { this->client = client; } diff --git a/cinelerra-5.1/plugins/stylizeobj/stylizeobjwindow.C b/cinelerra-5.1/plugins/stylizeobj/stylizeobjwindow.C index 9b68d965..b6091645 100644 --- a/cinelerra-5.1/plugins/stylizeobj/stylizeobjwindow.C +++ b/cinelerra-5.1/plugins/stylizeobj/stylizeobjwindow.C @@ -26,7 +26,7 @@ #include "theme.h" StylizeObjWindow::StylizeObjWindow(StylizeObj *plugin) - : PluginClientWindow(plugin, 320, 160, 320, 160, 0) + : PluginClientWindow(plugin, xS(320), yS(160), xS(320), yS(160), 0) { this->plugin = plugin; smoothing = 0; @@ -43,16 +43,18 @@ StylizeObjWindow::~StylizeObjWindow() void StylizeObjWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10); + int ys10 = yS(10), ys15 = yS(15); + int x = xs10, y = ys10; BC_Title *title = new BC_Title(x, y, _("StylizeObj")); add_subwindow(title); - y += title->get_h() + 10; + y += title->get_h() + ys10; int x1 = x; add_subwindow(title = new BC_Title(x1, y, _("Mode: "))); - x1 += title->get_w() + 15; + x1 += title->get_w() + ys15; add_subwindow(mode = new StylizeObjMode(this, x1, y, &plugin->config.mode)); mode->create_objects(); - y += mode->get_h() + 10; + y += mode->get_h() + ys10; x0 = x; y0 = y; update_params(); show_window(1); @@ -60,28 +62,29 @@ void StylizeObjWindow::create_objects() void StylizeObjWindow::update_params() { + int ys10 = yS(10); int x = x0, y = y0; if( plugin->config.mode == MODE_PENCIL_SKETCH || plugin->config.mode == MODE_COLOR_SKETCH ) { - int x1 = x + 80; + int x1 = x + xS(80); if( !smooth_title ) add_subwindow(smooth_title = new BC_Title(x,y,_("Smooth:"))); if( !smoothing ) add_subwindow(smoothing = new StylizeObjFSlider(this, - x1,y,180, 0,100, &plugin->config.smoothing)); - y += smoothing->get_h() + 10; + x1,y,xS(180), 0,xS(100), &plugin->config.smoothing)); + y += smoothing->get_h() + ys10; if( !edge_title ) add_subwindow(edge_title = new BC_Title(x,y,_("Edges:"))); if( !edge_strength ) add_subwindow(edge_strength = new StylizeObjFSlider(this, - x1,y,180, 0,100, &plugin->config.edge_strength)); - y += edge_strength->get_h() + 10; + x1,y,xS(180), 0,xS(100), &plugin->config.edge_strength)); + y += edge_strength->get_h() + ys10; if( !shade_title ) add_subwindow(shade_title = new BC_Title(x,y,_("Shade:"))); if( !shade_factor ) add_subwindow(shade_factor = new StylizeObjFSlider(this, - x1,y,180, 0,100, &plugin->config.shade_factor)); - //y += shade_factor->get_h() + 10; + x1,y,xS(180), 0,xS(100), &plugin->config.shade_factor)); + //y += shade_factor->get_h() + ys10; } else { delete smooth_title; smooth_title = 0; @@ -112,7 +115,7 @@ int StylizeObjModeItem::handle_event() } StylizeObjMode::StylizeObjMode(StylizeObjWindow *win, int x, int y, int *value) - : BC_PopupMenu(x, y, 150, "", 1) + : BC_PopupMenu(x, y, xS(150), "", 1) { this->win = win; this->value = value; diff --git a/cinelerra-5.1/plugins/svg/svgwin.C b/cinelerra-5.1/plugins/svg/svgwin.C index 028a9307..e5f5b920 100644 --- a/cinelerra-5.1/plugins/svg/svgwin.C +++ b/cinelerra-5.1/plugins/svg/svgwin.C @@ -44,7 +44,7 @@ struct fifo_struct { }; SvgWin::SvgWin(SvgMain *client) - : PluginClientWindow(client, 420, 210, 420, 210, 1) + : PluginClientWindow(client, xS(420), yS(210), xS(420), yS(210), 1) { this->client = client; this->editing = 0; @@ -56,19 +56,21 @@ SvgWin::~SvgWin() void SvgWin::create_objects() { + int xs10 = xS(10), xs15 = xS(15); + int ys5 = yS(5), ys10 = yS(10), ys20 = yS(20), ys15 = yS(15); BC_Title *title; - int x0 = 10, y = 10; + int x0 = xs10, y = ys10; add_tool(title = new BC_Title(x0, y, _("Out X:"))); - int x1 = x0 + title->get_w() + 10; + int x1 = x0 + title->get_w() + xs10; out_x = new SvgCoord(this, client, x1, y, &client->config.out_x); out_x->create_objects(); - int x2 = x1 + out_x->get_w() + 15; + int x2 = x1 + out_x->get_w() + xs15; add_tool(title = new BC_Title(x2, y, _("Out W:"))); - int x3 = x2 + title->get_w() + 10; + int x3 = x2 + title->get_w() + xs10; out_w = new SvgCoord(this, client, x3, y, &client->config.out_w); out_w->create_objects(); - y += out_x->get_h() + 5; + y += out_x->get_h() + ys5; add_tool(new BC_Title(x0, y, _("Out Y:"))); out_y = new SvgCoord(this, client, x1, y, &client->config.out_y); @@ -76,17 +78,17 @@ void SvgWin::create_objects() add_tool(title = new BC_Title(x2, y, _("Out H:"))); out_h = new SvgCoord(this, client, x3, y, &client->config.out_h); out_h->create_objects(); - y += out_y->get_h() + 20; + y += out_y->get_h() + ys20; add_tool(title = new BC_Title(x0, y, _("DPI:"))); dpi = new DpiValue(this, client, x1, y, &client->config.dpi); dpi->create_objects(); add_tool(dpi_button = new DpiButton(this, client, x2, y)); dpi_button->create_objects(); - y += dpi->get_h() + 20; + y += dpi->get_h() + ys20; add_tool(svg_file_title = new BC_Title(x0, y, client->config.svg_file)); - y += svg_file_title->get_h() + 5; + y += svg_file_title->get_h() + ys5; struct stat st; int64_t ms_time = stat(client->config.svg_file, &st) ? 0 : st.st_mtim.tv_sec*1000 + st.st_mtim.tv_nsec/1000000; @@ -96,12 +98,12 @@ void SvgWin::create_objects() ctime_r(&tm ,mtime); } add_tool(svg_file_mstime = new BC_Title(x0, y, mtime)); - y += svg_file_mstime->get_h() + 15; + y += svg_file_mstime->get_h() + ys15; - y = get_h() - NewSvgButton::calculate_h() - 5; + y = get_h() - NewSvgButton::calculate_h() - ys5; add_tool(new_svg_button = new NewSvgButton(client, this, x0, y)); - y = get_h() - EditSvgButton::calculate_h() - 5; - add_tool(edit_svg_button = new EditSvgButton(client, this, x0+300, y)); + y = get_h() - EditSvgButton::calculate_h() - ys5; + add_tool(edit_svg_button = new EditSvgButton(client, this, x0+xS(300), y)); show_window(); flush(); @@ -142,7 +144,7 @@ void SvgWin::update_gui(SvgConfig &config) } SvgCoord::SvgCoord(SvgWin *win, SvgMain *client, int x, int y, float *value) - : BC_TumbleTextBox(win, *value, (float)0, (float)3000, x, y, 100) + : BC_TumbleTextBox(win, *value, (float)0, (float)3000, x, y, xS(100)) { //printf("SvgWidth::SvgWidth %f\n", client->config.w); this->client = client; diff --git a/cinelerra-5.1/plugins/swapchannels/swapchannels.C b/cinelerra-5.1/plugins/swapchannels/swapchannels.C index 52ab4caf..3fc831fb 100644 --- a/cinelerra-5.1/plugins/swapchannels/swapchannels.C +++ b/cinelerra-5.1/plugins/swapchannels/swapchannels.C @@ -85,10 +85,10 @@ void SwapConfig::copy_from(SwapConfig &that) SwapWindow::SwapWindow(SwapMain *plugin) : PluginClientWindow(plugin, - 250, - 200, - 250, - 200, + xS(250), + yS(200), + xS(250), + yS(200), 0) { this->plugin = plugin; @@ -101,28 +101,30 @@ SwapWindow::~SwapWindow() void SwapWindow::create_objects() { - int x = 10, y = 10; - int margin = 30; + int xs10 = xS(10), xs30 = xS(30), xs160 = xS(160); + int ys5 = yS(5), ys10 = yS(10), ys40 = yS(40); + int x = xs10, y = ys10; + int margin = xs30; add_subwindow(new BC_Title(x, y, _("Swap channels"))); y += margin; - add_subwindow(new BC_Title(x + 160, y + 5, _("-> Red"))); + add_subwindow(new BC_Title(x + xs160, y + ys5, _("-> Red"))); add_subwindow(red = new SwapMenu(plugin, &(plugin->config.red), x, y)); red->create_objects(); y += margin; - add_subwindow(new BC_Title(x + 160, y + 5, _("-> Green"))); + add_subwindow(new BC_Title(x + xs160, y + ys5, _("-> Green"))); add_subwindow(green = new SwapMenu(plugin, &(plugin->config.green), x, y)); green->create_objects(); y += margin; - add_subwindow(new BC_Title(x + 160, y + 5, _("-> Blue"))); + add_subwindow(new BC_Title(x + xs160, y + ys5, _("-> Blue"))); add_subwindow(blue = new SwapMenu(plugin, &(plugin->config.blue), x, y)); blue->create_objects(); y += margin; - add_subwindow(new BC_Title(x + 160, y + 5, _("-> Alpha"))); + add_subwindow(new BC_Title(x + xs160, y + ys5, _("-> Alpha"))); add_subwindow(alpha = new SwapMenu(plugin, &(plugin->config.alpha), x, y)); alpha->create_objects(); - y += 40; + y += ys40; add_subwindow(reset = new SwapReset(plugin, this, x, y)); show_window(); @@ -137,7 +139,7 @@ void SwapWindow::create_objects() SwapMenu::SwapMenu(SwapMain *client, int *output, int x, int y) - : BC_PopupMenu(x, y, 150, client->output_to_text(*output)) + : BC_PopupMenu(x, y, xS(150), client->output_to_text(*output)) { this->client = client; this->output = output; diff --git a/cinelerra-5.1/plugins/swapframes/swapframes.C b/cinelerra-5.1/plugins/swapframes/swapframes.C index 6e37f7a0..69b395f6 100644 --- a/cinelerra-5.1/plugins/swapframes/swapframes.C +++ b/cinelerra-5.1/plugins/swapframes/swapframes.C @@ -184,10 +184,10 @@ int SwapFramesReset::handle_event() SwapFramesWindow::SwapFramesWindow(SwapFrames *plugin) : PluginClientWindow(plugin, - 260, - 135, - 260, - 135, + xS(260), + yS(135), + xS(260), + yS(135), 0) { this->plugin = plugin; @@ -195,23 +195,25 @@ SwapFramesWindow::SwapFramesWindow(SwapFrames *plugin) void SwapFramesWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10); + int ys5 = yS(5), ys10 = yS(10), ys35 = yS(35); + int x = xs10, y = ys10; add_subwindow(on = new SwapFramesOn(plugin, x, y)); - y += on->get_h() + 5; + y += on->get_h() + ys5; BC_Bar *bar; - add_subwindow(bar = new BC_Bar(x, y, get_w() - x * 2)); - y += bar->get_h() + 5; + add_subwindow(bar = new BC_Bar(x, y, get_w() - x * xS(2))); + y += bar->get_h() + ys5; add_subwindow(swap_even = new SwapFramesEven(plugin, this, x, y)); - y += swap_even->get_h() + 5; + y += swap_even->get_h() + ys5; add_subwindow(swap_odd = new SwapFramesOdd(plugin, this, x, y)); - y += 35; + y += ys35; add_subwindow(reset = new SwapFramesReset(plugin, this, x, y)); show_window(); diff --git a/cinelerra-5.1/plugins/synthesizer/synthesizer.C b/cinelerra-5.1/plugins/synthesizer/synthesizer.C index 194da4c7..909b1928 100644 --- a/cinelerra-5.1/plugins/synthesizer/synthesizer.C +++ b/cinelerra-5.1/plugins/synthesizer/synthesizer.C @@ -44,8 +44,8 @@ Synth::Synth(PluginServer *server) : PluginAClient(server) { reset(); - window_w = 640; - window_h = 480; + window_w = xS(640); + window_h = yS(480); } @@ -531,8 +531,8 @@ SynthWindow::SynthWindow(Synth *synth) : PluginClientWindow(synth, synth->window_w, synth->window_h, - 400, - 350, + xS(400), + yS(350), 1) { this->synth = synth; @@ -590,66 +590,68 @@ void SynthWindow::create_objects() harmonicmenu->add_item(new SynthFreqOdd(synth)); harmonicmenu->add_item(new SynthFreqPrime(synth)); - int x = 10, y = 30; + int xs10 = xS(10), xs20 = xS(20), xs50 = xS(50), xs70 = xS(70), xs75 = xS(75), xs240 = xS(240), xs265 = xS(265); + int ys10 = yS(10), ys20 = yS(20), ys30 = yS(30), ys40 = yS(40), ys220 = yS(220); + int x = xs10, y = ys30; add_subwindow(new BC_Title(x, y, _("Waveform"))); - x += 240; + x += xs240; add_subwindow(new BC_Title(x, y, _("Wave Function"))); - y += 20; - x = 10; - add_subwindow(canvas = new SynthCanvas(synth, this, x, y, 230, 160)); + y += ys20; + x = xs10; + add_subwindow(canvas = new SynthCanvas(synth, this, x, y, xS(230), yS(160))); canvas->update(); - x += 240; + x += xs240; char string[BCTEXTLEN]; waveform_to_text(string, synth->config.wavefunction); add_subwindow(waveform = new SynthWaveForm(synth, x, y, string)); waveform->create_objects(); - y += 30; - int x1 = x + waveform->get_w() + 10; + y += ys30; + int x1 = x + waveform->get_w() + xs10; add_subwindow(new BC_Title(x, y, _("Base Frequency:"))); - y += 30; + y += ys30; add_subwindow(base_freq = new SynthBaseFreq(synth, this, x, y)); base_freq->update((float)synth->config.base_freq[0]); x += base_freq->get_w() + synth->get_theme()->widget_border; - add_subwindow(freqpot = new SynthFreqPot(synth, this, x, y - 10)); + add_subwindow(freqpot = new SynthFreqPot(synth, this, x, y - ys10)); base_freq->freq_pot = freqpot; freqpot->freq_text = base_freq; x -= base_freq->get_w() + synth->get_theme()->widget_border; - y += 40; + y += ys40; add_subwindow(new BC_Title(x, y, _("Wetness:"))); - add_subwindow(wetness = new SynthWetness(synth, x + 70, y - 10)); + add_subwindow(wetness = new SynthWetness(synth, x + xs70, y - ys10)); - y += 40; + y += ys40; add_subwindow(new SynthClear(synth, x, y)); - x = 50; - y = 220; + x = xs50; + y = ys220; add_subwindow(new BC_Title(x, y, _("Level"))); - x += 75; + x += xs75; add_subwindow(new BC_Title(x, y, _("Phase"))); - x += 75; + x += xs75; add_subwindow(new BC_Title(x, y, _("Harmonic"))); - y += 20; x = 10; - add_subwindow(osc_subwindow = new BC_SubWindow(x, y, 265, get_h() - y)); - x += 265; + y += ys20; x = xs10; + add_subwindow(osc_subwindow = new BC_SubWindow(x, y, xs265, get_h() - y)); + x += xs265; add_subwindow(osc_scroll = new OscScroll(synth, this, x, y, get_h() - y)); - x += 20; + x += xs20; add_subwindow(new SynthAddOsc(synth, this, x, y)); - y += 30; + y += ys30; add_subwindow(new SynthDelOsc(synth, this, x, y)); // Create keyboard - y = 30; + y = ys30; #include "white_up_png.h" #include "white_hi_png.h" @@ -1482,7 +1484,7 @@ int SynthClear::handle_event() SynthWaveForm::SynthWaveForm(Synth *synth, int x, int y, char *text) - : BC_PopupMenu(x, y, 120, text) + : BC_PopupMenu(x, y, xS(120), text) { this->synth = synth; } @@ -1566,7 +1568,7 @@ int SynthFreqPot::handle_event() SynthBaseFreq::SynthBaseFreq(Synth *synth, SynthWindow *window, int x, int y) - : BC_TextBox(x, y, 100, 1, (float)0) + : BC_TextBox(x, y, xS(100), 1, (float)0) { this->synth = synth; this->window = window; diff --git a/cinelerra-5.1/plugins/theme_blond/blondtheme.C b/cinelerra-5.1/plugins/theme_blond/blondtheme.C index 3babdd66..0390829e 100644 --- a/cinelerra-5.1/plugins/theme_blond/blondtheme.C +++ b/cinelerra-5.1/plugins/theme_blond/blondtheme.C @@ -53,12 +53,6 @@ PluginClient* new_plugin(PluginServer *server) return new BlondThemeMain(server); } - - - - - - BlondThemeMain::BlondThemeMain(PluginServer *server) : PluginTClient(server) { @@ -78,13 +72,6 @@ Theme* BlondThemeMain::new_theme() return theme; } - - - - - - - BlondTheme::BlondTheme() : Theme() { @@ -124,7 +111,7 @@ void BlondTheme::initialize() resources->popup_title_text = 0x000000; resources->menu_item_text = 0x000000; resources->menu_highlighted_fontcolor = WHITE; - resources->generic_button_margin = 30; + resources->generic_button_margin = xS(30); resources->pot_needle_color = resources->text_default; resources->pot_offset = 1; resources->progress_text = resources->text_default; @@ -135,13 +122,13 @@ void BlondTheme::initialize() resources->menu_down = 0x4b4b4b; resources->menu_up = 0x4b4b4b; resources->menu_shadow = 0x202020; - resources->popupmenu_margin = 15; - resources->popupmenu_triangle_margin = 15; + resources->popupmenu_margin = xS(15); + resources->popupmenu_triangle_margin = xS(15); resources->listbox_title_color = 0x000000; - resources->listbox_title_margin = 20; - resources->listbox_title_hotspot = 20; + resources->listbox_title_margin = xS(20); + resources->listbox_title_hotspot = xS(20); resources->listbox_border1 = 0x1a1a1a; resources->listbox_border2 = 0xcecea2; resources->listbox_border3 = 0xcecea2; @@ -151,7 +138,7 @@ void BlondTheme::initialize() resources->listbox_bg = 0; resources->listbox_text = 0x000000; - resources->filebox_margin = 130; + resources->filebox_margin = yS(130); resources->file_color = 0x000000; resources->directory_color = 0xa0a0ff; @@ -394,7 +381,7 @@ void BlondTheme::initialize() resources->bar_data = new_image("bar", "bar.png"); resources->check = new_image("check", "check.png"); - resources->min_menu_w = 96; + resources->min_menu_w = xS(96); resources->menu_popup_bg = new_image("menu_popup_bg.png"); resources->menu_item_bg = new_image_set(3, "menuitem_up.png", @@ -526,7 +513,7 @@ void BlondTheme::initialize() "vscroll_right_up.png", "vscroll_right_hi.png", "vscroll_right_dn.png"); - resources->scroll_minhandle = 20; + resources->scroll_minhandle = xS(20); new_button("prevtip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "prev_tip"); @@ -544,17 +531,17 @@ void BlondTheme::initialize() preferences_category_overlap = 0; preferencescategory_x = 0; - preferencescategory_y = 5; - preferencestitle_x = 5; - preferencestitle_y = 10; - preferencesoptions_x = 5; + preferencescategory_y = yS(5); + preferencestitle_x = xS(5); + preferencestitle_y = yS(10); + preferencesoptions_x = xS(5); preferencesoptions_y = 0; // MWindow message_normal = resources->text_default; audio_color = GREEN; - mtransport_margin = 10; - toggle_margin = 10; + mtransport_margin = xS(10); + toggle_margin = xS(10); new_button("pane.png", "pane_up.png", "pane_hi.png", "pane_dn.png", "pane"); new_image_set("xpane", 3, "xpane_up.png", "xpane_hi.png", "xpane_dn.png"); @@ -605,22 +592,22 @@ void BlondTheme::initialize() setformat_w = get_image("setformat_bg")->get_w(); setformat_h = get_image("setformat_bg")->get_h(); - setformat_x1 = 15; - setformat_x2 = 110; + setformat_x1 = xS(15); + setformat_x2 = xS(110); - setformat_x3 = 315; - setformat_x4 = 425; - setformat_y1 = 20; - setformat_y2 = 85; - setformat_y3 = 125; - setformat_margin = 30; - setformat_channels_x = 25; - setformat_channels_y = 242; - setformat_channels_w = 250; - setformat_channels_h = 250; + setformat_x3 = xS(315); + setformat_x4 = xS(425); + setformat_y1 = xS(20); + setformat_y2 = xS(85); + setformat_y3 = xS(125); + setformat_margin = xS(30); + setformat_channels_x = xS(25); + setformat_channels_y = yS(242); + setformat_channels_w = xS(250); + setformat_channels_h = yS(250); - loadfile_pad = get_image_set("loadmode_new")[0]->get_h() + 10; - browse_pad = 20; + loadfile_pad = get_image_set("loadmode_new")[0]->get_h() + yS(10); + browse_pad = yS(20); new_toggle("playpatch.png", @@ -933,13 +920,13 @@ void BlondTheme::initialize() recordgui_variable_color = RED; channel_position_color = MEYELLOW; - resources->meter_title_w = 25; + resources->meter_title_w = xS(25); // (asset) edit info text color edit_font_color = YELLOW; } -#define VWINDOW_METER_MARGIN 5 +#define VWINDOW_METER_MARGIN xS(5) void BlondTheme::build_bg_data() @@ -974,18 +961,18 @@ void BlondTheme::build_overlays() void BlondTheme::draw_rwindow_bg(RecordGUI *gui) { // int y; -// int margin = 50; -// int margin2 = 80; +// int margin = xS(50); +// int margin2 = xS(80); // gui->draw_9segment(recordgui_batch_x - margin, // 0, // mwindow->session->rwindow_w - recordgui_status_x + margin, // recordgui_buttons_y, // rgui_batch); // gui->draw_3segmenth(recordgui_options_x - margin2, -// recordgui_buttons_y - 5, +// recordgui_buttons_y - yS(5), // mwindow->session->rwindow_w - recordgui_options_x + margin2, // rgui_controls); -// y = recordgui_buttons_y - 5 + rgui_controls->get_h(); +// y = recordgui_buttons_y - yS(5) + rgui_controls->get_h(); // gui->draw_9segment(0, // y, // mwindow->session->rwindow_w, @@ -995,27 +982,21 @@ void BlondTheme::draw_rwindow_bg(RecordGUI *gui) void BlondTheme::draw_rmonitor_bg(RecordMonitorGUI *gui) { -// int margin = 45; -// int panel_w = 300; +// int margin = xS(45); +// int panel_w = xS(300); // int x = rmonitor_meter_x - margin; // int w = mwindow->session->rmonitor_w - x; // if(w < rmonitor_meters->get_w()) w = rmonitor_meters->get_w(); -// gui->clear_box(0, -// 0, +// gui->clear_box(0, 0, // mwindow->session->rmonitor_w, // mwindow->session->rmonitor_h); -// gui->draw_9segment(x, -// 0, +// gui->draw_9segment(x, 0, // w, // mwindow->session->rmonitor_h, // rmonitor_meters); } - - - - void BlondTheme::draw_mwindow_bg(MWindowGUI *gui) { // Button bar @@ -1027,18 +1008,19 @@ void BlondTheme::draw_mwindow_bg(MWindowGUI *gui) x += 9 * get_image("play")->get_w(); x += mtransport_margin; // the control buttons + int xs2 = xS(2); gui->draw_vframe(get_image("panel_divider"), - x - toggle_margin / 2 - pdw / 2 + 2, + x - toggle_margin / 2 - pdw / 2 + xs2, mbuttons_y - 1); x += 2 * get_image("arrow")->get_w() + toggle_margin; // the mode buttons gui->draw_vframe(get_image("panel_divider"), - x - toggle_margin / 2 - pdw / 2 + 2, + x - toggle_margin / 2 - pdw / 2 + xs2, mbuttons_y - 1); x += 3 * get_image("autokeyframe")->get_w() + toggle_margin; // the state toggle buttons gui->draw_vframe(get_image("panel_divider"), - x - toggle_margin / 2 - pdw / 2 + 2, + x - toggle_margin / 2 - pdw / 2 + xs2, mbuttons_y - 1); // Clock @@ -1048,10 +1030,8 @@ void BlondTheme::draw_mwindow_bg(MWindowGUI *gui) get_image("clock_bg")); // Patchbay - gui->draw_3segmentv(patchbay_x, - patchbay_y, - patchbay_h, - get_image("patchbay_bg")); + gui->draw_3segmentv(patchbay_x, patchbay_y, + patchbay_h, get_image("patchbay_bg")); // Track canvas gui->set_color(BLACK); @@ -1061,17 +1041,13 @@ void BlondTheme::draw_mwindow_bg(MWindowGUI *gui) mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ) - mtimebar_h); // Timebar - gui->draw_3segmenth(mtimebar_x, - mtimebar_y, - mtimebar_w, - get_image("timebar_bg")); + gui->draw_3segmenth(mtimebar_x, mtimebar_y, + mtimebar_w, get_image("timebar_bg")); // Zoombar gui->set_color(0xcecea2); - gui->draw_box(mzoom_x, - mzoom_y, - mwindow->session->mwindow_w, - 25); + gui->draw_box(mzoom_x, mzoom_y, + mwindow->session->mwindow_w, yS(25)); // Scrollbar filler // gui->draw_vframe(get_image("mscroll_filler"), @@ -1083,8 +1059,6 @@ void BlondTheme::draw_mwindow_bg(MWindowGUI *gui) mzoom_y, mzoom_w, get_image("statusbar")); - - } void BlondTheme::draw_cwindow_bg(CWindowGUI *gui) @@ -1109,42 +1083,36 @@ void BlondTheme::draw_cwindow_bg(CWindowGUI *gui) { gui->draw_3segmenth(cstatus_x, ccomposite_h, - cmeter_x - widget_border - cstatus_x + 100, + cmeter_x - widget_border - cstatus_x + xS(100), get_image("cbuttons_right")); } } void BlondTheme::draw_vwindow_bg(VWindowGUI *gui) { - gui->draw_3segmenth(0, - vcanvas_h, + gui->draw_3segmenth(0, vcanvas_h, vdivision_x, get_image("vbuttons_left")); if(mwindow->edl->session->vwindow_meter) { - gui->draw_3segmenth(vdivision_x, - vcanvas_h, + gui->draw_3segmenth(vdivision_x, vcanvas_h, vmeter_x - widget_border - vdivision_x, get_image("cbuttons_right")); - gui->draw_9segment(vmeter_x - widget_border, - 0, + gui->draw_9segment(vmeter_x - widget_border, 0, mwindow->session->vwindow_w - vmeter_x + widget_border, mwindow->session->vwindow_h, get_image("cmeter_bg")); } else { - gui->draw_3segmenth(vdivision_x, - vcanvas_h, - vmeter_x - widget_border - vdivision_x + 100, + gui->draw_3segmenth(vdivision_x, vcanvas_h, + vmeter_x - widget_border - vdivision_x + xS(100), get_image("cbuttons_right")); } // Clock border - gui->draw_3segmenth(vtime_x - 20, - vtime_y - 1, - vtime_w + 40, - get_image("vclock")); + gui->draw_3segmenth(vtime_x - xS(20), vtime_y - 1, + vtime_w + xS(40), get_image("vclock")); } void BlondTheme::draw_preferences_bg(PreferencesWindow *gui) diff --git a/cinelerra-5.1/plugins/theme_blond/mask_all_linear.png b/cinelerra-5.1/plugins/theme_blond/mask_all_linear.png deleted file mode 100644 index 001d0e96e3baf704d2606305a581a3cf8a1fe647..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 422 zcmV;X0a^ZuP)LKcB& z5GW+!HOjE6ijmK^Oz*R>9P8r{pz2Qo{p)lR`L72srT8X!Xpx1cX3FK-Nyy zV5Qs&!dMmi5V`6kr_W`ipPN2}PtetbkW9%@^$-B+CUtJw^VWPUKHo2Ev8M39(JHtV zS_Zd9i{P!Gd3bAR47Wi`7sR<~k1CH;-W+z%Udo#PrgL=8(k_3y|F-njEd1Q`%WCWX z_55A&v-?8mYLXmZyjH!OZxBx{o24X>kziJbHlA21qwiZvP`CS)-*lHaUxr=HPF)0h QZ2$lO07*qoM6N<$f|dNRuK)l5 diff --git a/cinelerra-5.1/plugins/theme_blond/mask_all_smooth.png b/cinelerra-5.1/plugins/theme_blond/mask_all_smooth.png deleted file mode 100644 index 49fa6d1fd0db4240d9aae328019ec61919ac74fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 699 zcmV;s0!00ZP)Yajl?2|jZri`Ms#=Iu`!rUX4XZq z^Hz^{@A)|Q^4Ls| zW7%xs14#iu9F?9zW)HwGBK!0C!sAqMXP=zi-OEb`at992!p-Qj*HYY+WFQWMDXV53 z%(is|Yjbt}S7tgf@4g=NXR2;SOQO}AGOk?!DoIe_=Zt^7(-QVyEsWkeHhs#m@g$co zw39SRLaNpS@P1NmonrvV&fr8_Yt$|Q4M^V|Q%n$$&x)+DR4%F}! z#HeWdUVhtnBUmb!GD9MJ0n&mQg^jLUu2^o=a@tBwm@x@dDPj3{&_+?`ShV^nGXhu; h+22Um?85&a_yGVp>L4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1UHdAc}; zSoH3_vQhAm0T1hi_b$sG%xIEQThQK@+_)r-;Y9+IL<3(~gPOF#q+B7t`CMufE-<|R zck({hap%LoA9n_dMEKb6*%+xW@NBc@`Q^G!9BKxhZ@!6p^q6`{`doN_B*J-$%Q^kv z2v3fw9>)x(p6guu&|bw)uk-4kk5gXldwfsiTfXb5qaxq(SSNNL?|V66M$3xBfl0yBAu0F_Lt?mDc)tZL^l|g;iV`vsLX5xNiQn#eK3X&<6~ju6{1-oD!M< Ddb4&b diff --git a/cinelerra-5.1/plugins/theme_blond/mask_button_hi.png b/cinelerra-5.1/plugins/theme_blond/mask_button_hi.png deleted file mode 100644 index d0863324fc654a4d3da92bf1de67774345b34868..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 503 zcmV8XRN%<6JQ3w; z_=|RX4`criUX~;J=VvPwDt!C?mHx#KI-RGqTD#VKn^7<>fh($ru1#mseGD zs%p-7Tw?7Pn#~s5+f5!l-r?a^gS;qkSx$@r@8`_sGk#CTl;t&LIl_CtxlC3n>Uy^E zFrD@p4ElFgvQn{3oN{zoo+Jm0$nuWsI&tFl9Z##-pMU?u+}?5O#JA4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9h|3UhANvq>?iMM+p?eOPgDF)CuaX68e2qw>KQy;{an^LB{Ts5 DdHOCH diff --git a/cinelerra-5.1/plugins/theme_blond/mask_crv_linear.png b/cinelerra-5.1/plugins/theme_blond/mask_crv_linear.png deleted file mode 100644 index 776f97790ebf3439d8a5c91c38bebd831967a1bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 462 zcmV;<0WtoGP)%aZ}i`ux01s zW|bPMViL9tzy|;#u;=e@m(`dmU{x|j=RbqV;1R$Gpbxiv@3}nI2Rv}V@VPo3fs5gAZq*ys;Wku?Frk9sfHYNgzc@Wt}P5sIl2@M zZ;Fb)n?{|5pyPGZ)b7pl6g|^isrG8Z;hnHOEAysoTaws&)ra+;xrtxlTpSEty${fl zl6fryXJlSLI2gK(XXoM|pR46Bq**s3It2`oW>)}q=7CAGt`eOnXv$wJuoLh>fT;^x zEt@*$pNLL?l}!7qvw;!?zTdc>hjcCua{hMt5GyTHpRxY8t^r2_rT_o{07*qoM6N<$ Ef>C+D9RL6T diff --git a/cinelerra-5.1/plugins/theme_blond/mask_crv_smooth.png b/cinelerra-5.1/plugins/theme_blond/mask_crv_smooth.png deleted file mode 100644 index 2670fdbf79b6c5160856c1732d4c71f16b57ecc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 633 zcmV-<0*3vGP)9Jl3u(&pUv-ooH}v0TwFT~$~7VHD99}U@N06F0p|p`9){(oslL^z z@89ZWXY_I$e>&J*Ge*xiqnDFJm$nUdR=-GWG}o_gt-j(+?fJH#aU4xMQ)`Lno&7wG zMq@NF`fINr0f6fD7${r>WPvRI><2Cuiz}ck22|BlXLD@a}W1D z;6a1PEM4^K)T>jobg@j2l!3fD1&{!M2(+5aJSpmlN==vE=X)E6Ae#_e0Jz9=Y?caB z1Z3I%XeFxrl)$AB$CtwVDaz3G#`K*NGmk%mT&vYy9bey#KAS!T_$80|=}u`?-K_b}!|S_d^|z%= zo6Y8s*GAL(`g{?q+Ia2N9rapQS0b}?VSFq0NG!sz0pR&RjTzP%MQ;M+7T;rsBEV(&2kFCiC8k8HSCb=9WVOh0Q2syFAHAT( U{R0H3F8}}l07*qoM6N<$f>}@ICjbBd diff --git a/cinelerra-5.1/plugins/theme_blond/mask_pnt_smooth.png b/cinelerra-5.1/plugins/theme_blond/mask_pnt_smooth.png deleted file mode 100644 index 7a8c72ecc16d3d798ce5bb2258e832dc56678153..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 546 zcmV+-0^R+IP)q$*K!=7 z-?9>Cp&NVke1Fwkh!zi-u^|LzO1ol>*_nzKXsE8G+Ya?uUKw?{uJdx?>%LqxO0NA1 zs&%^0D0yw$r?p;BDOvxhhU`-{0uPW0A7yAd!N0QWhI^%Sd9oV_oKGCT&~(E zX>2>&;+J`NxM(#>>TEV!6}oXv&C4hVNAY;)ogX+B>$w4N($L_Hga#8M3C4~ev@E#; z=42=^GYfzwD8hkYitsjpCz-k8Zwml0CN=n|#Ko^jkV5Ii z4}!XxHsa#GHy!lnj*GxzQy^b{~Z>a|8CY;Y5x@Be(874G}N!RT{&a=q#*&72^Z9~-_B z790bFZtm_S>~ZgLC2Xhz;1xWbRdup)Z>JiTwg7KfGflhoi_k3lejl%OpfG8>5{{yk zJ()HI*JQ=cG<=A<9Yly|MbYj3$@;ms!YmGZ8M_#dF#1SskG(I7d>3DK!89002ovPDHLkV1ier1783D diff --git a/cinelerra-5.1/plugins/theme_blond/mask_prst_load.png b/cinelerra-5.1/plugins/theme_blond/mask_prst_load.png deleted file mode 100644 index d02083f15fdad75cfec40ea1e8c069317e14ad58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T6dAc}; zSoFS~V$0WTz|$JPO7AX*rSrKPdA!nd4AVIhU%$}Xu}G`1?nuZ-wdlI4pDB@yertnb zjy&)*%1XAsm-?+-sb|vjOHP-+mIZO~pDdmlH`S$Own@HH-$84J^UlrXPIvD`)rAF0 zT4f}+mwwwiODk#Vhg)0xq+jp2dCft!@cQk}lQT?KOV~Wk+v(={=#u*no15orjdpyQ q7i`tD!{UdEp4!=!FNJ^k?`5phaE#t2pLqc2Y6eeNKbLh*2~7Z;oN{>p diff --git a/cinelerra-5.1/plugins/theme_blond/mask_prst_ovl.png b/cinelerra-5.1/plugins/theme_blond/mask_prst_ovl.png deleted file mode 100644 index 28bcce281e058010474c994a5cfde009dd4ae285..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 513 zcmV+c0{;DpP)Ffu1S3*S_Dpn%dq*;jxWEwQ=~x z+F#2BwpiO;u~*?&8-*H2{i9rC8-*7@T|Ax#L1R!943G>54d=N&a8ao>mj3Ney+avE z?xQ}Iv0#N3fHV5h+U`nG@%44@ne*J)eXV>Nlly;>razy!JJVKJSNJV(ile2T`IaPR z2oMDNlq`FNu%oaqumE(t(w{Bge-TX$21t@0RhP}bMLC$9XbKMDM9lnQ5G>nV<1zco z!CGdrU0@r`hNAZ$1hL>cD4&h4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TcdAc}; zSoFS~?8tXWLBRFD$=w~B*M>jn*~MI5<+koZP;et}hyzsMr zNgup_#OdBCkcG2SOswf>aP@j3C-)8cw&*ZQ*`zwKal+2HF~zexEY&=(Azu6{1- HoD!M<;1GAe diff --git a/cinelerra-5.1/plugins/theme_blond/mask_prst_sqr.png b/cinelerra-5.1/plugins/theme_blond/mask_prst_sqr.png deleted file mode 100644 index dd30da16edb9edd839c91d1ac93afa47ffab8c48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T?JzX3_ zEP9g@Bv=CubeyUD|Lt477mu(=SnKTLE}f1)7`PQ@cQW3n@iG?gm$J$Fu;L(dqQSLI lO_zfD8XMd6JQV-{ diff --git a/cinelerra-5.1/plugins/theme_blond/mask_prst_tri.png b/cinelerra-5.1/plugins/theme_blond/mask_prst_tri.png deleted file mode 100644 index cd1090b59911917e4bddacb3777d3326e2b1d4ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 492 zcmV-ioaVpuk{zP1(fga!k zuolNJaZHWI?XswG6P~bYnwjh2AhAw23cZD|hjB7PiyfzuMacmU&;VI-YSrAYi&6H% zmm;dgAf*SxVn2Rkr&i5j=q2D{B&OT#W@o~fd_YLzOWsVTuf`)5-33sUW7C{=r>16K z6)DA`jx2WT)jUELXsBqpyWjEOODHv9(XHP{UcJa-?a^{#S()eVen3qz@c8>96}$Dj zbzlXsJ@v}{^H!&M7E&*S-gw0-#!m3$IGLPz>7S=kb8l*J3V_H!>TkuaUD*I#25iss z&Ig46TCHXocvP4VGDC_L-3~xF8bteHcM-OVF{ie_S62f{oZ=ndLYD00004nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TYJY5_^ zEP9g@Bv=CubohVzd;2yo4-e1R7mxn`H!k7oToE=Q<-_mo+y75~W#yO{%2PbU!!+dp z<23^{Rf`R*%pkyRIjdvioCJx(JPyk_8E3iPTXFF4&4h?3Hz041WXl{TPPVo4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq!<_&c|2Vl zLo9lqPBHX5>>%KJUuEI>TOJ%O3l56vZfEdX_aM9Cav|#uCe?7qzy!hGi3~IE_A04Z zO;d^}ig|FPjCKF)i}ROXy#DUM{;AvDc9$1NUTZd+u+vn$RAWNthnuClA3c7XxxA$+ zyJ@@H>Z&EG77XSGL{2nxb_w4V-!Ubu&}e0KRO+5Z2RsAMeEY@Doxb?shrD-km$Rz3 zoLf`Ozg*}E7l)%t=*7U~mh99wYfm=*oo^IgSaiYUvTc{%1BFRU=N+^bgq{neSneXaMH{px&%h>FiW@rzr5fydzK>gTe~DWM4fhIydv diff --git a/cinelerra-5.1/plugins/theme_blond/mask_pstn_nrm.png b/cinelerra-5.1/plugins/theme_blond/mask_pstn_nrm.png deleted file mode 100644 index fcae63724f8b83d3646628413fc522089ff4a08e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1V2JY5_^ zEP9g@Bv=CubeyUD|Lt3S%Dx2~w3M0U9JW-Iv@T&N+3WK}%7x>?nS@D)1Y{p{Gyh^a xdZKU7#gInXo;M)}oAesqs0MYP4Qvo)V36w86Wh+iR1Gwl!PC{xWt~$(69CzkLSX;^ diff --git a/cinelerra-5.1/plugins/theme_blond/mask_scale_chkd.png b/cinelerra-5.1/plugins/theme_blond/mask_scale_chkd.png deleted file mode 100644 index 6e75ca43bdc154ec7cbcf625ae07a924ebaa1e37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478 zcmV<40U`d0P)cp5-T`ENdT#432o7T@gao8yEse#_;%z z=rWoXK)t~L4!DdciK;e25-hkol8ADrYZFlcxg&R?7=I9Bj#)?7 z)ig~*S^lG(zhGvY2d-1GSkxPv<$S?xI^D|i|5PlOo8Uh6kz;ojslmQdvHU_sFYu>| zDlyoJE+tpt>*<#K@z&GrtGM+7%ZV}O$vciQCtO~h`^$WXw%z!<18_(k U8v8_S;{X5v07*qoM6N<$f}MNFEC2ui diff --git a/cinelerra-5.1/plugins/theme_blond/mask_scale_chkdhi.png b/cinelerra-5.1/plugins/theme_blond/mask_scale_chkdhi.png deleted file mode 100644 index 560dac4d8fe275dbbdb0f220c26243b5efb3c5f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 480 zcmV<60U!Q}P)mmUbM5;vmB(E$TT_0aPH=TYrA3suZ@_0?4I^gcl6z{77NJGlJ z+dmg3HTaoS*$bwpP(JH5V5RpFSV+ z<>)Jihevq-{}&iA|9eB*&bYezO-ducvx>eS0GKs3v!=#Z6(4r@+1oo{XXh<3PKfah zDUA$6Pv7^<=QrHmUXxPV;CbDOu3Nsie7Nsu+xAtSpIWh4yaaDEs~(%tl?K~d#bSes zt-#MJ`odr%m{eSaJ#M$+pZB=kHq~t_u#6BwES@-oh&w&~X7l?A-(+twi)sO00004nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9h|3UhANvq>?iMM+p?eOPgDF)CuaX68e2qw>KQy;{an^LB{Ts5 DdHOCH diff --git a/cinelerra-5.1/plugins/theme_blond/mask_scale_uphi.png b/cinelerra-5.1/plugins/theme_blond/mask_scale_uphi.png deleted file mode 100644 index d0863324fc654a4d3da92bf1de67774345b34868..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 503 zcmV8XRN%<6JQ3w; z_=|RX4`criUX~;J=VvPwDt!C?mHx#KI-RGqTD#VKn^7<>fh($ru1#mseGD zs%p-7Tw?7Pn#~s5+f5!l-r?a^gS;qkSx$@r@8`_sGk#CTl;t&LIl_CtxlC3n>Uy^E zFrD@p4ElFgvQn{3oN{zoo+Jm0$nuWsI&tFl9Z##-pMU?u+}?5O#JAdxkP?;>ei|AYC~U`;(j>_7&=4u$4-yih@#$vn%$ch<(9!Y#tk>GhQhnW&uM$0t zUo)#q|B@Z){{<@0R&By-%ei4iV9-V{Vl1r>xCVu5Jr`q81ZBHrUT{*Bc) o=S|W*))9g2`iq~=b#(kOA9*2D^sR=+SpWb407*qoM6N<$f?K+yv;Y7A diff --git a/cinelerra-5.1/plugins/theme_blond/mask_scale_xdown.png b/cinelerra-5.1/plugins/theme_blond/mask_scale_xdown.png deleted file mode 100644 index 812086aae9cc9c1377406ae6b1a36a48ca4b7e3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 609 zcmV-n0-pVeP)*fJKBmcZ-;o7037MkwE{I zWyLYI2%Z;23f3Z+q6HN(ShVzc;;6xWoj4|1@Kn&T4NOww6J7oD=PnVC4YcW^g_stN z@`AP=8ahEPSD@Z#bo7-M;QIl&T!B-k$69nPx;%@PQM;L}Z zK>@-r#QE(sw?cV709#vSDwQwH&&@G)c?y7g_m`+vs~tg!#Bm-iF9T5C-sbs>bzFD< zzdcsX3_TUFx>}@M-XXuZNII3~`?nt*!Rgdl9LHsC?J1k3(t+OGW53q+=)=bnpDSOP znZDl92dFnf@`c+tj@zPZ5sbmXV{-J!;cl_@R6l>Yn7R)~NNd3q(b3>QU)Zz-MKLM#?$N-(X zWUV@N>kM1M24mZ~zksn4p%Mc^tQ|pWouXEj7%Cj6s)7@h_;w&cwt=X7d$xOh-g(FO zy!YTgMv!FD3A~S>-wd+y+GL_>4!?F+`*4hU}lFo zGsg?cz)(Xp;Uwqc&HKL3`JLaHd6f^|Z;}_k`j#z0jm=m~w&3;GDp87`DU=_5_%@27 zYzkOP$-D1;f))%0$YktIfv&7zFo5PtiD_D!3U;MLldi;A1Fooe1;dzUc6O32YSJC;01c9e_wA zhgfVov1kF?w(UUEf&dKsehbsIaHT|*?lO2~kB$v{hXm9BSy^GE3yX%~)nqbDxQ-+g z3VTq1(Xk;+)B1PCBO}8IVS5e3BZKtz_V})EnmW3!qXvRRqxk?hj?LKU2twGa9-GG6 z$Fmq8zfDed4!`_*i$jNM5VqjjwS*5|Sy@f#!56uHy@#Trz1*9-%ly3sfEC5A@9_Wz z27V(e943`YV%vgv{AFz6kW6+1P+e6+MMX6|sRXH15+NK6)9^U1bnh!(2k!s5A5GIR zO^d6EuaPL!#E+86WB{nDijzoQA(6NOz>h!ufDppttnqls2cDRi^2J?UT?pHuw6q*m zRq5`&#O3ZwUVd!sj<0^zf6M z$2foCJhpAqP~U(p1nnK|0OaQvAZ(koo?fTe@Snct={-au5rzgwXsACmz0!{mzRev9O~G}s0C1> z(MRRNg1KSy|6SRUhtN(n9p&>gmvLRWDNt2aIMwtL{{TNU196%NR?+|f002ovPDHLk FV1hU84nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1V4d%8G= zSoFS~V(53+LBMssc_I5mfk3BT2az9oAtyxz1n($LSLje?xX#HsOPHl{!_>0K*~bJm z4peb0V)(fF>bXDb*V|ij*NZJZwIf6_^0%<}<)WV#`0w3i)~kJ&5`FlutMu{6mgaKf z1cooQQtNc*ggp#O<=NvFP@L4MB6V~&2V3^iJ-U-tJbrN3vLMuP+pg?$)AvcAyA?A# zV8xYIuiUrhy!pa^xc~1d_#!K=72Lq}PUg();%Bp3Z{D<>lc#b==Y)*Jx~ZSm`S)%A z&L?O8*lqEPuYE;Xe)a{%ot?7+SKL`A_Qdn)u|tNu>nDc^Con!)>94mh`ID^I)QjPE czwWn-f6+}+-EL#k1q=!XPgg&ebxsLQ0PIxV#)VPG*1BkIOP$GA=eW_-noMRQ zIdB*E@V*Z(=UlG396Kiu9!}BV)2K(~3q?+yJc#Pv)hV}bUP38V7qEyhJTivn^Lfc; z3w441DWA`aW{F^$Iah{ocsn4>&VH_{vqaFu5)2n$zkeN(u6-binHimI&a~BvCGHdN z-P4c1Apk&kPal($6V8d9z?~gCX>Z?Ax^LamK{&jPOymTSn#;43j z4D)Bj#2&E()5zJLuE=iQq+b(HjFyb?#3M1TR6NVe2Ktw2jz^EKF<-rQgSYSASM=obMKlr1am&fnbE45BC3rIRj7Q@sTfK;d z+8ho^p}0~N3=j-%U}F3}UXPc76Q`M*pSRWev>HBo)BH{>b{&AP)8DFUwe^jtk>No} n+=Lh%&b0AU|H3*@B00000NkvXXu0mjfz_ufT diff --git a/cinelerra-5.1/plugins/theme_blond/unclear.png b/cinelerra-5.1/plugins/theme_blond/unclear.png deleted file mode 100644 index 8e631961e020069895a2f13558ac736ca5e16f88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 568 zcmV-80>}M{P)VqLMc+Acdz*c-hw6Bg`R{Oy1Q17yZgpNH|Km^-^{@8XYaVChGvW3&1bv0KkEpnRi#N-}pYuJF`K25^T688vu9$aLZU- zHC9&vYy)_jI{6@ugGX}*lRYOn3HC(r1^_jecGYXWPSv`pTDR&oUuiCF03yWOBo21T zo>Ll3_M9YM{s_Ung4wJz{4j}v9R>Od^phyqt~C4*;PW#H9-PKYdnCBx5=f^?DW`Q)!PVNzhJc^O z=UnqO&ue}Kuru+>`+B`~n5$VEa{}3~cq@-5v(9}tvgiCrmOp^F58$Wf(ylc8Fp7d( zBw4Sw4o^p+Zw4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1UHdAc}; zSoH3_vQhAm0T1hi_b$sG%xIEQThQK@+_)r-;Y9+IL<3(~gPOF#q+B7t`CMufE-<|R zck({hap%LoA9n_dMEKb6*%+xW@NBc@`Q^G!9BKxhZ@!6p^q6`{`doN_B*J-$%Q^kv z2v3fw9>)x(p6guu&|bw)uk-4kk5gXldwfsiTfXb5qaxq(SSNNL?|V66M$3xBfl0yBAu0F_Lt?mDc)tZL^l|g;iV`vsLX5xNiQn#eK3X&<6~ju6{1-oD!M< Ddb4&b diff --git a/cinelerra-5.1/plugins/theme_blond/unclear_hi.png b/cinelerra-5.1/plugins/theme_blond/unclear_hi.png deleted file mode 100644 index d0863324fc654a4d3da92bf1de67774345b34868..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 503 zcmV8XRN%<6JQ3w; z_=|RX4`criUX~;J=VvPwDt!C?mHx#KI-RGqTD#VKn^7<>fh($ru1#mseGD zs%p-7Tw?7Pn#~s5+f5!l-r?a^gS;qkSx$@r@8`_sGk#CTl;t&LIl_CtxlC3n>Uy^E zFrD@p4ElFgvQn{3oN{zoo+Jm0$nuWsI&tFl9Z##-pMU?u+}?5O#JA4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9h|3UhANvq>?iMM+p?eOPgDF)CuaX68e2qw>KQy;{an^LB{Ts5 DdHOCH diff --git a/cinelerra-5.1/plugins/theme_blond_cv/blondcvtheme.C b/cinelerra-5.1/plugins/theme_blond_cv/blondcvtheme.C index 7830a1d2..3e11654d 100644 --- a/cinelerra-5.1/plugins/theme_blond_cv/blondcvtheme.C +++ b/cinelerra-5.1/plugins/theme_blond_cv/blondcvtheme.C @@ -45,19 +45,11 @@ #include "vwindowgui.h" - - PluginClient* new_plugin(PluginServer *server) { return new BlondCVThemeMain(server); } - - - - - - BlondCVThemeMain::BlondCVThemeMain(PluginServer *server) : PluginTClient(server) { @@ -78,12 +70,6 @@ Theme* BlondCVThemeMain::new_theme() } - - - - - - BlondCVTheme::BlondCVTheme() : Theme() { @@ -185,7 +171,7 @@ void BlondCVTheme::initialize() "radial_down.png", "radial_checkedhi.png"); - resources->generic_button_margin = 15; + resources->generic_button_margin = xS(15); resources->pot_needle_color = resources->text_default; resources->pot_offset = 1; resources->progress_text = resources->text_default; @@ -212,8 +198,8 @@ void BlondCVTheme::initialize() resources->menu_down = 0x007d7b; resources->menu_up = 0x009594; resources->menu_shadow = 0x004a4a; - resources->popupmenu_margin = 10; // ugly - resources->popupmenu_triangle_margin = 15; // ugly + resources->popupmenu_margin = xS(10); + resources->popupmenu_triangle_margin = xS(15); resources->hscroll_data = new_image_set(10, "hscroll_center_up.png", "hscroll_center_hi.png", @@ -240,7 +226,7 @@ void BlondCVTheme::initialize() "vscroll_fwd_dn.png"); resources->listbox_title_margin = 0; - resources->listbox_title_hotspot = 5; // No. of pixels around the borders to allow dragging + resources->listbox_title_hotspot = xS(5); // No. of pixels around the borders to allow dragging resources->listbox_border1 = 0x4a484a; // (top outer) resources->listbox_border2 = 0x000000; // (top inner) resources->listbox_border3 = 0xffe200; // (bottom inner) @@ -255,8 +241,8 @@ void BlondCVTheme::initialize() "generic_dn.png", "ok_button"); - resources->dirbox_margin = 50; - resources->filebox_margin = 120; + resources->dirbox_margin = yS(50); + resources->filebox_margin = yS(120); resources->file_color = 0x000000; resources->directory_color = 0x0000ff; @@ -552,11 +538,11 @@ void BlondCVTheme::initialize() "editpanel_dn.png", "swap_extents"); preferences_category_overlap = 0; - preferencescategory_x = 5; - preferencescategory_y = 5; - preferencestitle_x = 5; - preferencestitle_y = 10; - preferencesoptions_x = 5; + preferencescategory_x = xS(5); + preferencescategory_y = yS(5); + preferencestitle_x = xS(5); + preferencestitle_y = yS(10); + preferencesoptions_x = xS(5); preferencesoptions_y = 0; // CWindow cpanel_bg = new_image("cpanel_bg.png"); @@ -571,8 +557,8 @@ void BlondCVTheme::initialize() message_normal = resources->text_default; audio_color = BLACK; - mtransport_margin = 11; - toggle_margin = 11; + mtransport_margin = xS(11); + toggle_margin = xS(11); // VWindow vbuttons_left = new_image("vbuttons_left.png"); vbuttons_right = new_image("vbuttons_right.png"); @@ -626,31 +612,27 @@ void BlondCVTheme::initialize() timebar_view_data = new_image("timebar_view.png"); new_image("preferences_bg", "preferences_bg.png"); - setformat_w = 600; - setformat_h = 560; - setformat_x1 = 15; - setformat_x2 = 100; new_image("new_bg", "new_bg.png"); new_image("setformat_bg", "setformat_bg2.png"); - setformat_x3 = 315; - setformat_x4 = 415; - setformat_y1 = 20; - setformat_y2 = 85; setformat_w = get_image("setformat_bg")->get_w(); setformat_h = get_image("setformat_bg")->get_h(); - setformat_x4 = 425; - setformat_y3 = 125; - setformat_margin = 30; - setformat_channels_x = 25; - setformat_channels_y = 242; - setformat_channels_w = 250; - setformat_channels_h = 250; - - loadfile_pad = 52; - browse_pad = 20; - + setformat_x1 = xS(15); + setformat_x2 = xS(100); + setformat_x3 = xS(315); + setformat_x4 = xS(415); + setformat_y1 = yS(20); + setformat_y2 = yS(85); + setformat_y3 = yS(125); + setformat_margin = xS(30); + setformat_channels_x = xS(25); + setformat_channels_y = yS(242); + setformat_channels_w = xS(250); + setformat_channels_h = yS(250); + + loadfile_pad = yS(52); + browse_pad = yS(20); new_image_set("playpatch_data", 5, @@ -709,12 +691,8 @@ void BlondCVTheme::initialize() new_image_set("playpatch_data", 5, "playpatch_up.png", "playpatch_hi.png", "playpatch_checked.png", "playpatch_dn.png", "playpatch_checkedhi.png"); new_image_set("recordpatch_data", 5, "recordpatch_up.png", "recordpatch_hi.png", "recordpatch_checked.png", "recordpatch_dn.png", "recordpatch_checkedhi.png"); - build_overlays(); - - - out_point = new_image_set(5, "out_up.png", "out_hi.png", @@ -1006,7 +984,7 @@ void BlondCVTheme::initialize() resources->medium_font = cstrdup(string); channel_position_color = MEYELLOW; - resources->meter_title_w = 25; + resources->meter_title_w = xS(25); // (asset) edit info text color edit_font_color = YELLOW; @@ -1029,19 +1007,19 @@ void BlondCVTheme::initialize() } -#define CWINDOW_METER_MARGIN 5 -#define VWINDOW_METER_MARGIN 5 +#define CWINDOW_METER_MARGIN xS(5) +#define VWINDOW_METER_MARGIN xS(5) void BlondCVTheme::get_mwindow_sizes(MWindowGUI *gui, int w, int h) { mbuttons_x = 0; mbuttons_y = gui->mainmenu->get_h(); - mbuttons_w = w - (ffmpeg_toggle[0]->get_w()+2 + proxy_p_toggle[0]->get_w()+2); + mbuttons_w = w - (ffmpeg_toggle[0]->get_w()+xS(2) + proxy_p_toggle[0]->get_w()+xS(2)); mbuttons_h = get_image("mbutton_bg")->get_h(); - mclock_x = 10; + mclock_x = xS(10); mclock_y = mbuttons_y + mbuttons_h + CWINDOW_METER_MARGIN; - mclock_w = get_image("clock_bg")->get_w() - 40; + mclock_w = get_image("clock_bg")->get_w() - xS(40); mclock_h = get_image("clock_bg")->get_h(); mtimebar_x = get_image("patchbay_bg")->get_w(); mtimebar_y = mbuttons_y + mbuttons_h; @@ -1051,11 +1029,11 @@ void BlondCVTheme::get_mwindow_sizes(MWindowGUI *gui, int w, int h) mstatus_y = h - statusbar_left->get_h(); mstatus_w = w; mstatus_h = statusbar_left->get_h(); - mstatus_message_x = 10; - mstatus_message_y = 5; - mstatus_progress_x = mstatus_w - statusbar_cancel_data[0]->get_w() - 240; + mstatus_message_x = xS(10); + mstatus_message_y = yS(5); + mstatus_progress_x = mstatus_w - statusbar_cancel_data[0]->get_w() - xS(240); mstatus_progress_y = mstatus_h - BC_WindowBase::get_resources()->progress_images[0]->get_h(); - mstatus_progress_w = 230; + mstatus_progress_w = xS(230); mstatus_cancel_x = mstatus_w - statusbar_cancel_data[0]->get_w(); mstatus_cancel_y = mstatus_h - statusbar_cancel_data[0]->get_h(); mzoom_x = 0; @@ -1087,23 +1065,23 @@ void BlondCVTheme::get_cwindow_sizes(CWindowGUI *gui, int cwindow_controls) if(cwindow_controls) { ccomposite_x = 0; - ccomposite_y = 5; + ccomposite_y = yS(5); ccomposite_w = cpanel_bg->get_w(); ccomposite_h = mwindow->session->cwindow_h - cbuttons_left->get_h(); - cedit_x = 10; - cedit_y = ccomposite_h + 17; - ctransport_x = 10; + cedit_x = xS(10); + cedit_y = ccomposite_h + yS(17); + ctransport_x = xS(10); ctransport_y = mwindow->session->cwindow_h - get_image_set("autokeyframe")[0]->get_h(); ccanvas_x = ccomposite_x + ccomposite_w; ccanvas_y = 0; ccanvas_h = ccomposite_h; - cstatus_x = 525; - cstatus_y = mwindow->session->cwindow_h - 40; + cstatus_x = xS(525); + cstatus_y = mwindow->session->cwindow_h - yS(40); if(mwindow->edl->session->cwindow_meter) { cmeter_x = mwindow->session->cwindow_w - MeterPanel::get_meters_width(this,mwindow->edl->session->audio_channels, mwindow->edl->session->cwindow_meter); - ccanvas_w = cmeter_x - ccanvas_x - 5; + ccanvas_w = cmeter_x - ccanvas_x - xS(5); } else { @@ -1120,10 +1098,10 @@ SET_TRACE ccomposite_w = cpanel_bg->get_w(); ccomposite_h = mwindow->session->cwindow_h - get_image("cbuttons_left")->get_h(); - cedit_x = 10; - cedit_y = mwindow->session->cwindow_h + 17; - ctransport_x = 10; - ctransport_y = cedit_y + 40; + cedit_x = xS(10); + cedit_y = mwindow->session->cwindow_h + yS(17); + ctransport_x = xS(10); + ctransport_y = cedit_y + yS(40); ccanvas_x = 0; ccanvas_y = 0; ccanvas_w = mwindow->session->cwindow_w; @@ -1136,25 +1114,24 @@ SET_TRACE SET_TRACE - czoom_x = ctransport_x + PlayTransport::get_transport_width(mwindow) + 20; - czoom_y = ctransport_y + 5; - + czoom_x = ctransport_x + PlayTransport::get_transport_width(mwindow) + xS(20); + czoom_y = ctransport_y + yS(5); - cmeter_y = 5; + cmeter_y = yS(5); cmeter_h = mwindow->session->cwindow_h - cmeter_y; - cslider_w = ccanvas_x + ccanvas_w - cslider_x - 5; + cslider_w = ccanvas_x + ccanvas_w - cslider_x - xS(5); ctimebar_x = ccanvas_x; ctimebar_y = ccanvas_y + ccanvas_h; ctimebar_w = ccanvas_w; - ctimebar_h = 16; + ctimebar_h = yS(16); // Not used ctime_x = ctransport_x + PlayTransport::get_transport_width(mwindow); ctime_y = ctransport_y; cdest_x = czoom_x; - cdest_y = czoom_y + 30; + cdest_y = czoom_y + yS(30); SET_TRACE } @@ -1162,57 +1139,49 @@ SET_TRACE void BlondCVTheme::get_recordgui_sizes(RecordGUI *gui, int w, int h) { - recordgui_status_x = 10; - recordgui_status_y = 10; - recordgui_status_x2 = 160; - recordgui_batch_x = 310; - recordgui_batch_y = 10; - recordgui_batchcaption_x = recordgui_batch_x + 110; + recordgui_status_x = xS(10); + recordgui_status_y = yS(10); + recordgui_status_x2 = xS(160); + recordgui_batch_x = xS(310); + recordgui_batch_y = yS(10); + recordgui_batchcaption_x = recordgui_batch_x + xS(110); recordgui_transport_x = recordgui_batch_x; - recordgui_transport_y = recordgui_batch_y + 150; + recordgui_transport_y = recordgui_batch_y + yS(150); - //recordgui_buttons_x = recordgui_batch_x - 50; - //recordgui_buttons_y = recordgui_transport_y + 40; + //recordgui_buttons_x = recordgui_batch_x - xS(50); + //recordgui_buttons_y = recordgui_transport_y + yS(40); //recordgui_options_x = recordgui_buttons_x; - //recordgui_options_y = recordgui_buttons_y + 35; + //recordgui_options_y = recordgui_buttons_y + yS(35); - recordgui_batches_x = 10; - recordgui_batches_y = 270; - recordgui_batches_w = w - 20; - recordgui_batches_h = h - recordgui_batches_y - 70; + recordgui_batches_x = xS(10); + recordgui_batches_y = yS(270); + recordgui_batches_w = w - xS(20); + recordgui_batches_h = h - recordgui_batches_y - yS(70); recordgui_loadmode_x = w / 2 - loadmode_w / 2; - recordgui_loadmode_y = h - 60; + recordgui_loadmode_y = h - yS(60); - recordgui_controls_x = 10; - recordgui_controls_y = h - 40; + recordgui_controls_x = xS(10); + recordgui_controls_y = h - yS(40); } /* -void BlondCVTheme::get_rmonitor_sizes(int do_audio, - int do_video, - int do_channel, - int do_interlace, - int do_avc, - int audio_channels) +void BlondCVTheme::get_rmonitor_sizes(int do_audio, int do_video, + int do_channel, int do_interlace, int do_avc, int audio_channels) { - Theme::get_rmonitor_sizes(do_audio, - do_video, - do_channel, - do_interlace, - do_avc, - audio_channels); + Theme::get_rmonitor_sizes(do_audio, do_video, + do_channel, do_interlace, do_avc, audio_channels); if(!do_video && do_audio) { - rmonitor_meter_y -= 30; - rmonitor_meter_h += 30; + rmonitor_meter_y -= yS(30); + rmonitor_meter_h += yS(30); } } */ void BlondCVTheme::get_vwindow_sizes(VWindowGUI *gui) { - vmeter_y = 5; + vmeter_y = yS(5); vmeter_h = mwindow->session->vwindow_h - cmeter_y; vcanvas_x = 0; vcanvas_y = 0; @@ -1220,8 +1189,8 @@ void BlondCVTheme::get_vwindow_sizes(VWindowGUI *gui) if(mwindow->edl->session->vwindow_meter) { - rmonitor_meter_y -= 30; - rmonitor_meter_h += 30; + rmonitor_meter_y -= yS(30); + rmonitor_meter_h += yS(30); vmeter_x = mwindow->session->vwindow_w - VWINDOW_METER_MARGIN - MeterPanel::get_meters_width(this, @@ -1238,19 +1207,19 @@ void BlondCVTheme::get_vwindow_sizes(VWindowGUI *gui) vtimebar_x = vcanvas_x; vtimebar_y = vcanvas_y + vcanvas_h; vtimebar_w = vcanvas_w; - vtimebar_h = 16; + vtimebar_h = yS(16); - vslider_x = 10; - vslider_y = vtimebar_y + 25; + vslider_x = xS(10); + vslider_y = vtimebar_y + yS(25); vslider_w = vtimebar_w - vslider_x; - vedit_x = 10; + vedit_x = xS(10); vedit_y = vslider_y + BC_Slider::get_span(0); - vtransport_x = 10; + vtransport_x = xS(10); vtransport_y = mwindow->session->vwindow_h - get_image_set("autokeyframe")[0]->get_h(); - vtime_x = 380; - vtime_y = vedit_y + 10; - vtime_w = 125; + vtime_x = xS(380); + vtime_y = vedit_y + yS(10); + vtime_w = xS(125); } @@ -1300,28 +1269,21 @@ void BlondCVTheme::build_overlays() } - - - - - - - void BlondCVTheme::draw_rwindow_bg(RecordGUI *gui) { // int y; -// int margin = 50; -// int margin2 = 80; +// int margin = xS(50); +// int margin2 = xS(80); // gui->draw_9segment(recordgui_batch_x - margin, // 0, // mwindow->session->rwindow_w - recordgui_status_x + margin, // recordgui_buttons_y, // rgui_batch); // gui->draw_3segmenth(recordgui_options_x - margin2, -// recordgui_buttons_y - 5, +// recordgui_buttons_y - yS(5), // mwindow->session->rwindow_w - recordgui_options_x + margin2, // rgui_controls); -// y = recordgui_buttons_y - 5 + rgui_controls->get_h(); +// y = recordgui_buttons_y - yS(5) + rgui_controls->get_h(); // gui->draw_9segment(0, // y, // mwindow->session->rwindow_w, @@ -1331,81 +1293,58 @@ void BlondCVTheme::draw_rwindow_bg(RecordGUI *gui) void BlondCVTheme::draw_rmonitor_bg(RecordMonitorGUI *gui) { -// int margin = 45; -// int panel_w = 300; +// int margin = xS(45); +// int panel_w = xS(300); // int x = rmonitor_meter_x - margin; // int w = mwindow->session->rmonitor_w - x; // if(w < rmonitor_meters->get_w()) w = rmonitor_meters->get_w(); -// gui->clear_box(0, -// 0, +// gui->clear_box(0, 0, // mwindow->session->rmonitor_w, // mwindow->session->rmonitor_h); -// gui->draw_9segment(x, -// 0, +// gui->draw_9segment(x, 0, // w, // mwindow->session->rmonitor_h, // rmonitor_meters); } - - - - void BlondCVTheme::draw_mwindow_bg(MWindowGUI *gui) { // Button bar - gui->draw_3segmenth(mbuttons_x, - mbuttons_y, - 750, - mbutton_left); - gui->draw_3segmenth(mbuttons_x + 750, - mbuttons_y, - mbuttons_w - 500, - mbutton_right); + gui->draw_3segmenth(mbuttons_x, mbuttons_y, + xS(750), mbutton_left); + gui->draw_3segmenth(mbuttons_x + xS(750), mbuttons_y, + mbuttons_w - xS(500), mbutton_right); // Clock - gui->draw_3segmenth(0, - mbuttons_y + mbutton_left->get_h(), - get_image("patchbay_bg")->get_w(), - get_image("clock_bg")); + gui->draw_3segmenth(0, mbuttons_y + mbutton_left->get_h(), + get_image("patchbay_bg")->get_w(), get_image("clock_bg")); // Patchbay - gui->draw_3segmentv(patchbay_x, - patchbay_y, - patchbay_h + 20, - get_image("patchbay_bg")); + gui->draw_3segmentv(patchbay_x, patchbay_y, + patchbay_h + yS(20), get_image("patchbay_bg")); // Track canvas - gui->draw_9segment(mcanvas_x, - mcanvas_y, - mcanvas_w, - patchbay_h + 20, + gui->draw_9segment(mcanvas_x, mcanvas_y, + mcanvas_w, patchbay_h + yS(20), tracks_bg); // Timebar - gui->draw_3segmenth(mtimebar_x, - mtimebar_y, + gui->draw_3segmenth(mtimebar_x, mtimebar_y, mtimebar_w, get_image("timebar_bg")); // Zoombar - int zoombar_center = 710; - gui->draw_3segmenth(mzoom_x, - mzoom_y, - zoombar_center, - zoombar_left); + int zoombar_center = xS(710); + gui->draw_3segmenth(mzoom_x, mzoom_y, + zoombar_center, zoombar_left); if(mzoom_w > zoombar_center) - gui->draw_3segmenth(mzoom_x + zoombar_center, - mzoom_y, - mzoom_w - zoombar_center, - zoombar_right); + gui->draw_3segmenth(mzoom_x + zoombar_center, mzoom_y, + mzoom_w - zoombar_center, zoombar_right); // Status - gui->draw_3segmenth(mstatus_x, - mstatus_y, - zoombar_center, - statusbar_left); + gui->draw_3segmenth(mstatus_x, mstatus_y, + zoombar_center, statusbar_left); if(mstatus_w > zoombar_center) gui->draw_3segmenth(mstatus_x + zoombar_center, @@ -1416,7 +1355,7 @@ void BlondCVTheme::draw_mwindow_bg(MWindowGUI *gui) void BlondCVTheme::draw_cwindow_bg(CWindowGUI *gui) { - const int button_division = 570; + const int button_division = xS(570); gui->draw_3segmentv(0, 0, ccomposite_h, get_image("cpanel_bg")); gui->draw_3segmenth(0, ccomposite_h, button_division, get_image("cbuttons_left")); if(mwindow->edl->session->cwindow_meter) @@ -1435,35 +1374,30 @@ void BlondCVTheme::draw_cwindow_bg(CWindowGUI *gui) { gui->draw_3segmenth(button_division, ccomposite_h, - cmeter_x - CWINDOW_METER_MARGIN - button_division + 100, + cmeter_x - CWINDOW_METER_MARGIN - button_division + xS(100), get_image("cbuttons_right")); } } void BlondCVTheme::draw_vwindow_bg(VWindowGUI *gui) { - const int button_division = 400; - gui->draw_3segmenth(0, - vcanvas_h, - button_division, - get_image("vbuttons_left")); + const int button_division = xS(400); + gui->draw_3segmenth(0, vcanvas_h, + button_division, get_image("vbuttons_left")); if(mwindow->edl->session->vwindow_meter) { - gui->draw_3segmenth(button_division, - vcanvas_h, + gui->draw_3segmenth(button_division, vcanvas_h, vmeter_x - VWINDOW_METER_MARGIN - button_division, get_image("cbuttons_right")); - gui->draw_9segment(vmeter_x - VWINDOW_METER_MARGIN, - 0, + gui->draw_9segment(vmeter_x - VWINDOW_METER_MARGIN, 0, mwindow->session->vwindow_w - vmeter_x + VWINDOW_METER_MARGIN, mwindow->session->vwindow_h, get_image("cmeter_bg")); } else { - gui->draw_3segmenth(button_division, - vcanvas_h, - vmeter_x - VWINDOW_METER_MARGIN - button_division + 100, + gui->draw_3segmenth(button_division, vcanvas_h, + vmeter_x - VWINDOW_METER_MARGIN - button_division + xS(100), get_image("cbuttons_right")); } } @@ -1497,7 +1431,9 @@ void BlondCVTheme::draw_setformat_bg(SetFormatWindow *gui) // pmd: SUV (same), 1_2_2blond (nonexist) void BlondCVTheme::get_plugindialog_sizes() { - int x = 10, y = 30; + int xs10 = xS(10), xs20 = xS(20); + int ys10 = yS(10), ys120 = yS(120); + int x = xs10, y = yS(30); plugindialog_new_x = x; plugindialog_new_y = y; plugindialog_shared_x = mwindow->session->plugindialog_w / 3; @@ -1505,19 +1441,19 @@ void BlondCVTheme::get_plugindialog_sizes() plugindialog_module_x = mwindow->session->plugindialog_w * 2 / 3; plugindialog_module_y = y; - plugindialog_new_w = plugindialog_shared_x - plugindialog_new_x - 10; - plugindialog_new_h = mwindow->session->plugindialog_h - 120; - plugindialog_shared_w = plugindialog_module_x - plugindialog_shared_x - 10; - plugindialog_shared_h = mwindow->session->plugindialog_h - 120; - plugindialog_module_w = mwindow->session->plugindialog_w - plugindialog_module_x - 10; - plugindialog_module_h = mwindow->session->plugindialog_h - 120; - - plugindialog_newattach_x = plugindialog_new_x + 20; - plugindialog_newattach_y = plugindialog_new_y + plugindialog_new_h + 10; - plugindialog_sharedattach_x = plugindialog_shared_x + 20; - plugindialog_sharedattach_y = plugindialog_shared_y + plugindialog_shared_h + 10; - plugindialog_moduleattach_x = plugindialog_module_x + 20; - plugindialog_moduleattach_y = plugindialog_module_y + plugindialog_module_h + 10; + plugindialog_new_w = plugindialog_shared_x - plugindialog_new_x - xs10; + plugindialog_new_h = mwindow->session->plugindialog_h - ys120; + plugindialog_shared_w = plugindialog_module_x - plugindialog_shared_x - xs10; + plugindialog_shared_h = mwindow->session->plugindialog_h - ys120; + plugindialog_module_w = mwindow->session->plugindialog_w - plugindialog_module_x - xs10; + plugindialog_module_h = mwindow->session->plugindialog_h - ys120; + + plugindialog_newattach_x = plugindialog_new_x + xs20; + plugindialog_newattach_y = plugindialog_new_y + plugindialog_new_h + ys10; + plugindialog_sharedattach_x = plugindialog_shared_x + xs20; + plugindialog_sharedattach_y = plugindialog_shared_y + plugindialog_shared_h + ys10; + plugindialog_moduleattach_x = plugindialog_module_x + xs20; + plugindialog_moduleattach_y = plugindialog_module_y + plugindialog_module_h + ys10; } diff --git a/cinelerra-5.1/plugins/theme_blond_cv/blondcvtheme.C.orig b/cinelerra-5.1/plugins/theme_blond_cv/blondcvtheme.C.orig deleted file mode 100644 index 8aff33a4..00000000 --- a/cinelerra-5.1/plugins/theme_blond_cv/blondcvtheme.C.orig +++ /dev/null @@ -1,1199 +0,0 @@ - -/* - * CINELERRA - * Copyright (C) 2008 Adam Williams - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#include "bcsignals.h" -#include "clip.h" -#include "cwindowgui.h" -#include "defaulttheme.h" -#include "edl.h" -#include "edlsession.h" -#include "mainmenu.h" -#include "mainsession.h" -#include "mbuttons.h" -#include "meterpanel.h" -#include "mwindow.h" -#include "mwindowgui.h" -#include "new.h" -#include "patchbay.h" -#include "preferencesthread.h" -#include "recordgui.h" -#include "recordmonitor.h" -#include "setformat.h" -#include "statusbar.h" -#include "timebar.h" -#include "trackcanvas.h" -#include "vframe.h" -#include "vwindowgui.h" - - - - -PluginClient* new_plugin(PluginServer *server) -{ - return new BlondThemeMain(server); -} - - - - - - - -BlondThemeMain::BlondThemeMain(PluginServer *server) - : PluginTClient(server) -{ -} - -BlondThemeMain::~BlondThemeMain() -{ -} - -const char* BlondThemeMain::plugin_title() { return "Blond-cv"; } - -Theme* BlondThemeMain::new_theme() -{ - theme = new BlondTheme; - extern unsigned char _binary_defaulttheme_data_start[]; - theme->set_data(_binary_defaulttheme_data_start); - return theme; -} - - - - - - - - -BlondTheme::BlondTheme() - : Theme() -{ -} - -BlondTheme::~BlondTheme() -{ -} - -void BlondTheme::initialize() -{ - BC_Resources *resources = BC_WindowBase::get_resources(); - - - resources->text_default = 0x000000; - resources->text_background = 0xffffff; - resources->text_border1 = 0x4a484a; // (top outer) - resources->text_border2 = 0x000000; // (top inner) - resources->text_border3 = 0xacaeac; // (bottom inner) - resources->text_border4 = 0xffffff; // (bottom outer) - resources->text_inactive_highlight = 0xacacac; - - resources->bg_color = BLOND; - resources->default_text_color = 0x000000; - resources->menu_title_text = 0x000000; - resources->popup_title_text = 0x000000; - resources->menu_item_text = 0x000000; - - resources->generic_button_margin = 15; - resources->pot_needle_color = resources->text_default; - resources->pot_offset = 1; - resources->progress_text = resources->text_default; - resources->meter_font_color = RED; - - resources->menu_light = 0x00cacd; - resources->menu_highlighted = 0x9c95ff; - resources->menu_down = 0x007d7b; - resources->menu_up = 0x009594; - resources->menu_shadow = 0x004a4a; - resources->popupmenu_margin = 10; // ugly - resources->popupmenu_triangle_margin = 15; // ugly - - resources->listbox_title_color = 0x000000; - - resources->listbox_title_margin = 0; - resources->listbox_title_hotspot = 5; // No. of pixels around the borders to allow dragging - resources->listbox_border1 = 0x4a484a; // (top outer) - resources->listbox_border2 = 0x000000; // (top inner) - resources->listbox_border3 = 0xffe200; // (bottom inner) - resources->listbox_border4 = 0xffffff; // (bottom outer) - resources->listbox_highlighted = 0xeee6ee; - resources->listbox_inactive = 0xffffffff; // (background) - resources->listbox_bg = new_image("list_bg.png"); - resources->listbox_text = 0x000000; - - resources->dirbox_margin = 50; - resources->filebox_margin = 101; - resources->file_color = 0x000000; - resources->directory_color = 0x0000ff; - - - - - resources->filebox_icons_images = new_button("icons.png", - "fileboxbutton_up.png", - "fileboxbutton_hi.png", - "fileboxbutton_dn.png"); - - resources->filebox_text_images = new_button("text.png", - "fileboxbutton_up.png", - "fileboxbutton_hi.png", - "fileboxbutton_dn.png"); - - resources->filebox_newfolder_images = new_button("folder.png", - "fileboxbutton_up.png", - "fileboxbutton_hi.png", - "fileboxbutton_dn.png"); - - resources->filebox_updir_images = new_button("updir.png", - "fileboxbutton_up.png", - "fileboxbutton_hi.png", - "fileboxbutton_dn.png"); - - resources->filebox_delete_images = new_button("delete.png", - "fileboxbutton_up.png", - "fileboxbutton_hi.png", - "fileboxbutton_dn.png"); - - resources->filebox_reload_images = new_button("reload.png", - "fileboxbutton_up.png", - "fileboxbutton_hi.png", - "fileboxbutton_dn.png"); - - - resources->filebox_descend_images = new_button("openfolder.png", - "generic_up.png", - "generic_hi.png", - "generic_dn.png"); - - resources->usethis_button_images = - resources->ok_images = new_button("ok.png", - "generic_up.png", - "generic_hi.png", - "generic_dn.png"); - - new_button("ok.png", - "generic_up.png", - "generic_hi.png", - "generic_dn.png", - "new_ok_images"); - - resources->cancel_images = new_button("cancel.png", - "generic_up.png", - "generic_hi.png", - "generic_dn.png"); - - new_button("cancel.png", - "generic_up.png", - "generic_hi.png", - "generic_dn.png", - "new_cancel_images"); - - resources->bar_data = new_image("bar", "bar.png"); - - - resources->min_menu_w = 0; - resources->menu_popup_bg = 0; // if (0) use menu_light, menu_up, menu_shadow - resources->menu_item_bg = 0; // if (0) use menu_light, menu_highlighted, menu_down, menu_shadow - resources->menu_bar_bg = 0; // if (0) use menu_light, menu_shadow, and height of MEDIUMFONT + 8 - resources->menu_title_bg = 0; // if (0) use menu_light, menu_highlighted, menu_down, menu_shadow - - - resources->popupmenu_images = 0; // if (0) get_resources()->use generic_button_images - - resources->toggle_highlight_bg = 0; // if (0) "Draw a plain box" as per bctoggle.C - - resources->generic_button_images = new_image_set(3, - "generic_up.png", - "generic_hi.png", - "generic_dn.png"); - resources->horizontal_slider_data = new_image_set(6, - "hslider_fg_up.png", - "hslider_fg_hi.png", - "hslider_fg_dn.png", - "hslider_bg_up.png", - "hslider_bg_hi.png", - "hslider_bg_dn.png"); - resources->vertical_slider_data = new_image_set(6, - "vertical_slider_fg_up.png", - "vertical_slider_fg_hi.png", - "vertical_slider_fg_dn.png", - "vertical_slider_bg_up.png", - "vertical_slider_bg_hi.png", - "vertical_slider_bg_dn.png"); - resources->progress_images = new_image_set(2, - "progress_bg.png", - "progress_hi.png"); - resources->tumble_data = new_image_set(4, - "tumble_up.png", - "tumble_hi.png", - "tumble_bottom.png", - "tumble_top.png"); - resources->listbox_button = new_image_set(4, - "listbox_button_up.png", - "listbox_button_hi.png", - "listbox_button_dn.png", - "listbox_button_disabled.png"); // probably need to make this for the suv theme - resources->listbox_column = new_image_set(3, - "column_up.png", - "column_hi.png", - "column_dn.png"); - resources->listbox_expand = new_image_set(5, - "listbox_expandup.png", - "listbox_expanduphi.png", - "listbox_expandchecked.png", - "listbox_expanddn.png", - "listbox_expandcheckedhi.png"); - resources->listbox_up = new_image("listbox_up.png"); - resources->listbox_dn = new_image("listbox_dn.png"); - resources->pan_data = new_image_set(7, - "pan_up.png", - "pan_hi.png", - "pan_popup.png", - "pan_channel.png", - "pan_stick.png", - "pan_channel_small.png", - "pan_stick_small.png"); - resources->pan_text_color = WHITE; - - resources->pot_images = new_image_set(3, - "pot_up.png", - "pot_hi.png", - "pot_dn.png"); - - resources->checkbox_images = new_image_set(5, - "checkbox_up.png", - "checkbox_hi.png", - "checkbox_checked.png", - "checkbox_dn.png", - "checkbox_checkedhi.png"); - - resources->radial_images = new_image_set(5, - "radial_up.png", - "radial_hi.png", - "radial_checked.png", - "radial_dn.png", - "radial_checkedhi.png"); - - resources->xmeter_images = new_image_set(6, - "xmeter_normal.png", - "xmeter_green.png", - "xmeter_red.png", - "xmeter_yellow.png", - "xmeter_white.png", - "xmeter_over.png"); - resources->ymeter_images = new_image_set(6, - "ymeter_normal.png", - "ymeter_green.png", - "ymeter_red.png", - "ymeter_yellow.png", - "ymeter_white.png", - "ymeter_over.png"); - - resources->hscroll_data = new_image_set(10, - "hscroll_handle_up.png", - "hscroll_handle_hi.png", - "hscroll_handle_dn.png", - "hscroll_handle_bg.png", - "hscroll_left_up.png", - "hscroll_left_hi.png", - "hscroll_left_dn.png", - "hscroll_right_up.png", - "hscroll_right_hi.png", - "hscroll_right_dn.png"); - - resources->vscroll_data = new_image_set(10, - "vscroll_handle_up.png", - "vscroll_handle_hi.png", - "vscroll_handle_dn.png", - "vscroll_handle_bg.png", - "vscroll_left_up.png", - "vscroll_left_hi.png", - "vscroll_left_dn.png", - "vscroll_right_up.png", - "vscroll_right_hi.png", - "vscroll_right_dn.png"); - - - new_button("prevtip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "prev_tip"); - new_button("nexttip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "next_tip"); - new_button("closetip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "close_tip"); - new_button("swap_extents.png", - "editpanel_up.png", - "editpanel_hi.png", - "editpanel_dn.png", - "swap_extents"); - - -// Record windows - rgui_batch = new_image("recordgui_batch.png"); - rgui_controls = new_image("recordgui_controls.png"); - rgui_list = new_image("recordgui_list.png"); - rmonitor_panel = new_image("recordmonitor_panel.png"); - rmonitor_meters = new_image("recordmonitor_meters.png"); - - - preferences_category_overlap = 0; - preferencescategory_x = 5; - preferencescategory_y = 5; - preferencestitle_x = 5; - preferencestitle_y = 10; - preferencesoptions_x = 5; - preferencesoptions_y = 0; - -// MWindow - message_normal = resources->text_default; - audio_color = BLACK; - mtransport_margin = 11; - toggle_margin = 11; - - new_image("mbutton_bg", "mbutton_bg.png"); - new_image("mbutton_blue", "mbutton_blue.png"); - new_image("timebar_bg", "timebar_bg.png"); - new_image("timebar_brender", "timebar_brender.png"); - new_image("clock_bg", "mclock.png"); - new_image("patchbay_bg", "patchbay_bg.png"); - new_image("tracks_bg","tracks_bg.png"); - new_image("zoombar_left","zoombar_left.png"); - new_image("zoombar_right","zoombar_right.png"); - new_image("statusbar_left","statusbar_left.png"); - new_image("statusbar_right","statusbar_right.png"); - - new_image_set("zoombar_menu", 3, "generic_up.png", "generic_hi.png", "generic_dn.png"); - new_image_set("zoombar_tumbler", 4, "tumble_up.png", "tumble_hi.png", "tumble_bottom.png", "tumble_top.png"); - - new_image_set("mode_popup", 3, "generic_up.png", "generic_hi.png", "generic_dn.png"); - new_image("mode_add", "mode_add.png"); - new_image("mode_divide", "mode_divide.png"); - new_image("mode_multiply", "mode_multiply.png"); - new_image("mode_normal", "mode_normal.png"); - new_image("mode_replace", "mode_replace.png"); - new_image("mode_subtract", "mode_subtract.png"); - new_image("mode_max", "mode_max.png"); - - new_toggle("plugin_on.png", - "pluginbutton_hi.png", - "pluginbutton_hi.png", - "pluginbutton_select.png", - "pluginbutton_dn.png", - "pluginbutton_selecthi.png", - "plugin_on"); - - new_toggle("plugin_show.png", - "plugin_show.png", - "pluginbutton_hi.png", - "pluginbutton_select.png", - "pluginbutton_dn.png", - "pluginbutton_selecthi.png", - "plugin_show"); - -// CWindow - new_image("cpanel_bg", "cpanel_bg.png"); - new_image("cbuttons_left", "cbuttons_left.png"); - new_image("cbuttons_right", "cbuttons_right.png"); - new_image("cmeter_bg", "cmeter_bg.png"); - -// VWindow - new_image("vbuttons_left", "vbuttons_left.png"); - - new_image("preferences_bg", "preferences_bg.png"); - - - new_image("new_bg", "new_bg.png"); - new_image("setformat_bg", "setformat_bg2.png"); - - - timebar_view_data = new_image("timebar_view.png"); - - setformat_w = get_image("setformat_bg")->get_w(); - setformat_h = get_image("setformat_bg")->get_h(); - setformat_x1 = 15; - setformat_x2 = 100; - - setformat_x3 = 315; - setformat_x4 = 425; - setformat_y1 = 20; - setformat_y2 = 85; - setformat_y3 = 125; - setformat_margin = 30; - setformat_channels_x = 25; - setformat_channels_y = 242; - setformat_channels_w = 250; - setformat_channels_h = 250; - - loadfile_pad = 52; - browse_pad = 20; - - - new_image_set("playpatch_data", - 5, - "playpatch_up.png", - "playpatch_hi.png", - "playpatch_checked.png", - "playpatch_dn.png", - "playpatch_checkedhi.png"); - - new_image_set("recordpatch_data", - 5, - "recordpatch_up.png", - "recordpatch_hi.png", - "recordpatch_checked.png", - "recordpatch_dn.png", - "recordpatch_checkedhi.png"); - - new_image_set("gangpatch_data", - 5, - "gangpatch_up.png", - "gangpatch_hi.png", - "gangpatch_checked.png", - "gangpatch_dn.png", - "gangpatch_checkedhi.png"); - - new_image_set("drawpatch_data", - 5, - "drawpatch_up.png", - "drawpatch_hi.png", - "drawpatch_checked.png", - "drawpatch_dn.png", - "drawpatch_checkedhi.png"); - - - new_image_set("mutepatch_data", - 5, - "mutepatch_up.png", - "mutepatch_hi.png", - "mutepatch_checked.png", - "mutepatch_dn.png", - "mutepatch_checkedhi.png"); - - new_image_set("expandpatch_data", - 5, - "expandpatch_up.png", - "expandpatch_hi.png", - "expandpatch_checked.png", - "expandpatch_dn.png", - "expandpatch_checkedhi.png"); - - build_icons(); - build_bg_data(); - build_overlays(); - - - - - out_point = new_image_set(5, - "out_up.png", - "out_hi.png", - "out_checked.png", - "out_dn.png", - "out_checkedhi.png"); - in_point = new_image_set(5, - "in_up.png", - "in_hi.png", - "in_checked.png", - "in_dn.png", - "in_checkedhi.png"); - - label_toggle = new_image_set(5, - "labeltoggle_up.png", - "labeltoggle_uphi.png", - "label_checked.png", - "labeltoggle_dn.png", - "label_checkedhi.png"); - - - statusbar_cancel_data = new_image_set(3, - "statusbar_cancel_up.png", - "statusbar_cancel_hi.png", - "statusbar_cancel_dn.png"); - - - VFrame *editpanel_up = new_image("editpanel_up.png"); - VFrame *editpanel_hi = new_image("editpanel_hi.png"); - VFrame *editpanel_dn = new_image("editpanel_dn.png"); - VFrame *editpanel_checked = new_image("editpanel_checked.png"); - VFrame *editpanel_checkedhi = new_image("editpanel_checkedhi.png"); - - new_image("panel_divider", "panel_divider.png"); - new_button("bottom_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "bottom_justify"); - new_button("center_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "center_justify"); - new_button("channel.png", editpanel_up, editpanel_hi, editpanel_dn, "channel"); - - - new_button("copy.png", editpanel_up, editpanel_hi, editpanel_dn, "copy"); - new_button("cut.png", editpanel_up, editpanel_hi, editpanel_dn, "cut"); - new_button("fit.png", editpanel_up, editpanel_hi, editpanel_dn, "fit"); - new_button("fitautos.png", editpanel_up, editpanel_hi, editpanel_dn, "fitautos"); - new_button("inpoint.png", editpanel_up, editpanel_hi, editpanel_dn, "inbutton"); - new_button("label.png", editpanel_up, editpanel_hi, editpanel_dn, "labelbutton"); - new_button("left_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "left_justify"); - new_button("magnify.png", editpanel_up, editpanel_hi, editpanel_dn, "magnify_button"); - new_button("middle_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "middle_justify"); - new_button("nextlabel.png", editpanel_up, editpanel_hi, editpanel_dn, "nextlabel"); - new_button("outpoint.png", editpanel_up, editpanel_hi, editpanel_dn, "outbutton"); - over_button = new_button("over.png", editpanel_up, editpanel_hi, editpanel_dn); - overwrite_data = new_button("overwrite.png", editpanel_up, editpanel_hi, editpanel_dn); - new_button("paste.png", editpanel_up, editpanel_hi, editpanel_dn, "paste"); - new_button("prevlabel.png", editpanel_up, editpanel_hi, editpanel_dn, "prevlabel"); - new_button("redo.png", editpanel_up, editpanel_hi, editpanel_dn, "redo"); - new_button("right_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "right_justify"); - splice_data = new_button("splice.png", editpanel_up, editpanel_hi, editpanel_dn); - new_button("toclip.png", editpanel_up, editpanel_hi, editpanel_dn, "toclip"); - new_button("goto.png", editpanel_up, editpanel_hi, editpanel_dn, "goto"); - new_button("top_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "top_justify"); - new_button("undo.png", editpanel_up, editpanel_hi, editpanel_dn, "undo"); - new_button("wrench.png", editpanel_up, editpanel_hi, editpanel_dn, "wrench"); - - -#define TRANSPORT_LEFT_IMAGES "transport_left_up.png", "transport_left_hi.png", "transport_left_dn.png" -#define TRANSPORT_CENTER_IMAGES "transport_center_up.png", "transport_center_hi.png", "transport_center_dn.png" -#define TRANSPORT_RIGHT_IMAGES "transport_right_up.png", "transport_right_hi.png", "transport_right_dn.png" - - new_button("end.png", TRANSPORT_RIGHT_IMAGES, "end"); - new_button("fastfwd.png",TRANSPORT_CENTER_IMAGES, "fastfwd"); - new_button("fastrev.png",TRANSPORT_CENTER_IMAGES, "fastrev"); - new_button("play.png",TRANSPORT_CENTER_IMAGES, "play"); - new_button("framefwd.png", TRANSPORT_CENTER_IMAGES, "framefwd"); - new_button("framerev.png", TRANSPORT_CENTER_IMAGES, "framerev"); - new_button("pause.png", TRANSPORT_CENTER_IMAGES, "pause"); - new_button("record.png", TRANSPORT_CENTER_IMAGES, "record"); - new_button("singleframe.png", TRANSPORT_CENTER_IMAGES, "recframe"); - new_button("reverse.png", TRANSPORT_CENTER_IMAGES, "reverse"); - new_button("rewind.png", TRANSPORT_LEFT_IMAGES, "rewind"); - new_button("stop.png", TRANSPORT_CENTER_IMAGES, "stop"); - new_button("stop.png", TRANSPORT_RIGHT_IMAGES, "stoprec"); - - - -// CWindow icons - new_image("cwindow_inactive", "cwindow_inactive.png"); - new_image("cwindow_active", "cwindow_active.png"); - - - new_image_set("batch_render_start", - 3, - "batchstart_up.png", - "batchstart_hi.png", - "batchstart_dn.png"); - new_image_set("batch_render_stop", - 3, - "batchstop_up.png", - "batchstop_hi.png", - "batchstop_dn.png"); - new_image_set("batch_render_cancel", - 3, - "batchcancel_up.png", - "batchcancel_hi.png", - "batchcancel_dn.png"); - - new_image_set("category_button", - 3, - "preferencesbutton_dn.png", - "preferencesbutton_dnhi.png", - "preferencesbutton_dnlo.png"); - - new_image_set("category_button_checked", - 3, - "preferencesbutton_up.png", - "preferencesbutton_uphi.png", - "preferencesbutton_dnlo.png"); - - - - - - - new_toggle("arrow.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "arrow"); - new_toggle("autokeyframe.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "autokeyframe"); - new_toggle("ibeam.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "ibeam"); - new_toggle("show_meters.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "meters"); - - VFrame *cpanel_up = new_image("editpanel_up.png"); - VFrame *cpanel_hi = new_image("editpanel_hi.png"); - VFrame *cpanel_dn = new_image("editpanel_dn.png"); - VFrame *cpanel_checked = new_image("editpanel_checked.png"); - VFrame *cpanel_checkedhi = new_image("editpanel_checkedhi.png"); - new_toggle("blank30x30.png", - new_image("locklabels_locked.png"), - new_image("locklabels_lockedhi.png"), - new_image("locklabels_unlocked.png"), - new_image("locklabels_dn.png"), // can't have seperate down for each!!?? - new_image("locklabels_unlockedhi.png"), - "locklabels"); - - - new_toggle("camera.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "camera"); - new_toggle("crop.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "crop"); - new_toggle("eyedrop.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "eyedrop"); - new_toggle("magnify.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "magnify"); - new_toggle("mask.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "mask"); - new_toggle("ruler.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "ruler"); - new_toggle("projector.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "projector"); - new_toggle("protect.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "protect"); - new_toggle("titlesafe.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "titlesafe"); - new_toggle("toolwindow.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "tool"); - - // toggle for tangent mode (compositor/tool window) - new_toggle("tan_smooth.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "tan_smooth"); - new_toggle("tan_linear.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "tan_linear"); - - - flush_images(); - - title_font = MEDIUMFONT_3D; - title_color = WHITE; - recordgui_fixed_color = YELLOW; - recordgui_variable_color = RED; - resources->medium_font = "-*-helvetica-bold-r-normal-*-14-*"; - - channel_position_color = MEYELLOW; - resources->meter_title_w = 25; - - // (asset) edit info text color - edit_font_color = YELLOW; - - //labels - resources->label_images = new_image_set(5, - "radial_up.png", - "radial_hi.png", - "radial_checked.png", - "radial_dn.png", - "radial_checkedhi.png"); - - /* resources->type_to_icon = new_image_set(5, - "file_folder.png", - "file_unknown.png", - "file_film.png", - "file_sound.png", - "file_column.png"); - */ -} - -#define CWINDOW_METER_MARGIN 5 -#define VWINDOW_METER_MARGIN 5 - -void BlondTheme::get_mwindow_sizes(MWindowGUI *gui, int w, int h) -{ - mbuttons_x = 0; - mbuttons_y = gui->mainmenu->get_h() + 1; - mbuttons_w = w; - mbuttons_h = get_image("mbutton_bg")->get_h(); - mclock_x = 10; - mclock_y = mbuttons_y - 1 + mbuttons_h + CWINDOW_METER_MARGIN; - mclock_w = get_image("clock_bg")->get_w() - 40; - mclock_h = get_image("clock_bg")->get_h(); - mtimebar_x = get_image("patchbay_bg")->get_w(); - mtimebar_y = mbuttons_y - 1 + mbuttons_h; - mtimebar_w = w - mtimebar_x; - mtimebar_h = get_image("timebar_bg")->get_h(); - mzoom_h = get_image("zoombar_left")->get_h(); - mzoom_x = 0; - mzoom_y = h - get_image("statusbar_left")->get_h() - mzoom_h; - mzoom_w = w; - mstatus_x = 0; - mstatus_y = mzoom_y + mzoom_h; - mstatus_w = w; - mstatus_h = h - mstatus_y; - mstatus_message_x = 10; - mstatus_message_y = 5; - mstatus_progress_w = 230; - mstatus_progress_x = mstatus_w - statusbar_cancel_data[0]->get_w() - 2*3 - mstatus_progress_w; - mstatus_progress_y = mstatus_h/2 - BC_WindowBase::get_resources()->progress_images[0]->get_h()/2; - - mstatus_cancel_x = mstatus_w - statusbar_cancel_data[0]->get_w() - 3; - mstatus_cancel_y = mstatus_h/2 - statusbar_cancel_data[0]->get_h()/2; - - patchbay_x = 0; - patchbay_y = mtimebar_y + mtimebar_h; - patchbay_w = get_image("patchbay_bg")->get_w(); - patchbay_h = mzoom_y - patchbay_y - BC_ScrollBar::get_span(SCROLL_HORIZ); - mcanvas_x = patchbay_x + patchbay_w; - mcanvas_y = patchbay_y; - mcanvas_w = w - patchbay_w - BC_ScrollBar::get_span(SCROLL_VERT); - mcanvas_h = patchbay_h; - mhscroll_x = 0; - mhscroll_y = mzoom_y - BC_ScrollBar::get_span(SCROLL_HORIZ); - mhscroll_w = w - BC_ScrollBar::get_span(SCROLL_VERT); - mvscroll_x = mcanvas_x + mcanvas_w; - mvscroll_y = mcanvas_y; - mvscroll_h = mcanvas_h; -} - -void BlondTheme::get_cwindow_sizes(CWindowGUI *gui, int cwindow_controls) -{ - if(cwindow_controls) - { -SET_TRACE - ccomposite_x = 0; - ccomposite_y = 5; - ccomposite_w = get_image("cpanel_bg")->get_w(); - ccomposite_h = mwindow->session->cwindow_h - - get_image("cbuttons_left")->get_h(); - cslider_x = 5; - cslider_y = ccomposite_h + 23; - cedit_x = 10; - cedit_y = cslider_y + 17; - ctransport_x = 10; - ctransport_y = mwindow->session->cwindow_h - - get_image_set("autokeyframe")[0]->get_h(); - ccanvas_x = ccomposite_x + ccomposite_w; - ccanvas_y = 0; - ccanvas_h = ccomposite_h; - cstatus_x = 525; - cstatus_y = mwindow->session->cwindow_h - 40; - if(mwindow->edl->session->cwindow_meter) - { - cmeter_x = mwindow->session->cwindow_w - MeterPanel::get_meters_width(mwindow->edl->session->audio_channels, - mwindow->edl->session->cwindow_meter); - ccanvas_w = cmeter_x - ccanvas_x - 5; - } - else - { - cmeter_x = mwindow->session->cwindow_w; - ccanvas_w = cmeter_x - ccanvas_x; - } -SET_TRACE - } - else - { -SET_TRACE - ccomposite_x = -get_image("cpanel_bg")->get_w(); - ccomposite_y = 0; - ccomposite_w = get_image("cpanel_bg")->get_w(); - ccomposite_h = mwindow->session->cwindow_h - get_image("cbuttons_left")->get_h(); - - cslider_x = 5; - cslider_y = mwindow->session->cwindow_h; - cedit_x = 10; - cedit_y = cslider_y + 17; - ctransport_x = 10; - ctransport_y = cedit_y + 40; - ccanvas_x = 0; - ccanvas_y = 0; - ccanvas_w = mwindow->session->cwindow_w; - ccanvas_h = mwindow->session->cwindow_h; - cmeter_x = mwindow->session->cwindow_w; - cstatus_x = mwindow->session->cwindow_w; - cstatus_y = mwindow->session->cwindow_h; -SET_TRACE - } - -SET_TRACE - - czoom_x = ctransport_x + PlayTransport::get_transport_width(mwindow) + 20; - czoom_y = ctransport_y + 5; - - - cmeter_y = 5; - cmeter_h = mwindow->session->cwindow_h - cmeter_y; - - cslider_w = ccanvas_x + ccanvas_w - cslider_x - 5; - ctimebar_x = ccanvas_x; - ctimebar_y = ccanvas_y + ccanvas_h; - ctimebar_w = ccanvas_w; - ctimebar_h = 16; - - -// Not used - ctime_x = ctransport_x + PlayTransport::get_transport_width(mwindow); - ctime_y = ctransport_y; - cdest_x = czoom_x; - cdest_y = czoom_y + 30; -SET_TRACE -} - - - -void BlondTheme::get_recordgui_sizes(RecordGUI *gui, int w, int h) -{ - -} - -void BlondTheme::get_rmonitor_sizes(int do_audio, - int do_video, - int do_channel, - int do_interlace, - int do_avc, - int audio_channels) -{ - Theme::get_rmonitor_sizes(do_audio, - do_video, - do_channel, - do_interlace, - do_avc, - audio_channels); - if(!do_video && do_audio) - { - rmonitor_meter_y -= 30; - rmonitor_meter_h += 30; - } -} - - -void BlondTheme::get_vwindow_sizes(VWindowGUI *gui) -{ - vmeter_y = 5; - vmeter_h = mwindow->session->vwindow_h - cmeter_y; - vcanvas_x = 0; - vcanvas_y = 0; - vcanvas_h = mwindow->session->vwindow_h - get_image("vbuttons_left")->get_h(); - - if(mwindow->edl->session->vwindow_meter) - { - vmeter_x = mwindow->session->vwindow_w - - VWINDOW_METER_MARGIN - - MeterPanel::get_meters_width(mwindow->edl->session->audio_channels, - mwindow->edl->session->vwindow_meter); - vcanvas_w = vmeter_x - vcanvas_x - VWINDOW_METER_MARGIN; - } - else - { - vmeter_x = mwindow->session->vwindow_w; - vcanvas_w = mwindow->session->vwindow_w; - } - - vtimebar_x = vcanvas_x; - vtimebar_y = vcanvas_y + vcanvas_h; - vtimebar_w = vcanvas_w; - vtimebar_h = 16; - - vslider_x = 10; - vslider_y = vtimebar_y + 25; - vslider_w = vtimebar_w - vslider_x; - vedit_x = 10; - vedit_y = vslider_y + BC_Slider::get_span(0); - vtransport_x = 10; - vtransport_y = mwindow->session->vwindow_h - - get_image_set("autokeyframe")[0]->get_h(); - vtime_x = 380; - vtime_y = vedit_y + 10; - vtime_w = 125; - - - - - vzoom_x = vtime_x + 150; - vzoom_y = vtime_y; - vsource_x = vtime_x + 50; - vsource_y = vtransport_y + 5; -} - - - - - -void BlondTheme::build_icons() -{ - new_image("mwindow_icon", "heroine_icon.png"); - new_image("vwindow_icon", "heroine_icon.png"); - new_image("cwindow_icon", "heroine_icon.png"); - new_image("awindow_icon", "heroine_icon.png"); - new_image("record_icon", "heroine_icon.png"); - new_image("clip_icon", "clip_icon.png"); -} - - - -void BlondTheme::build_bg_data() -{ -// Audio settings - channel_bg_data = new VFrame(get_image_data("channel_bg.png")); - channel_position_data = new VFrame(get_image_data("channel_position.png")); - -// Track bitmaps - new_image("resource1024", "resource1024.png"); - new_image("resource512", "resource512.png"); - new_image("resource256", "resource256.png"); - new_image("resource128", "resource128.png"); - new_image("resource64", "resource64.png"); - new_image("resource32", "resource32.png"); - new_image("plugin_bg_data", "plugin_bg.png"); - new_image("title_bg_data", "title_bg.png"); - new_image("vtimebar_bg_data", "vwindow_timebar.png"); -} - - - -void BlondTheme::build_overlays() -{ - keyframe_data = new VFrame(get_image_data("keyframe3.png")); - camerakeyframe_data = new VFrame(get_image_data("camerakeyframe.png")); - maskkeyframe_data = new VFrame(get_image_data("maskkeyframe.png")); - modekeyframe_data = new VFrame(get_image_data("modekeyframe.png")); - pankeyframe_data = new VFrame(get_image_data("pankeyframe.png")); - projectorkeyframe_data = new VFrame(get_image_data("projectorkeyframe.png")); -} - - - - - - - - - -void BlondTheme::draw_rwindow_bg(RecordGUI *gui) -{ -// int y; -// int margin = 50; -// int margin2 = 80; -// gui->draw_9segment(recordgui_batch_x - margin, -// 0, -// mwindow->session->rwindow_w - recordgui_status_x + margin, -// recordgui_buttons_y, -// rgui_batch); -// gui->draw_3segmenth(recordgui_options_x - margin2, -// recordgui_buttons_y - 5, -// mwindow->session->rwindow_w - recordgui_options_x + margin2, -// rgui_controls); -// y = recordgui_buttons_y - 5 + rgui_controls->get_h(); -// gui->draw_9segment(0, -// y, -// mwindow->session->rwindow_w, -// mwindow->session->rwindow_h - y, -// rgui_list); -} - -void BlondTheme::draw_rmonitor_bg(RecordMonitorGUI *gui) -{ -// int margin = 45; -// int panel_w = 300; -// int x = rmonitor_meter_x - margin; -// int w = mwindow->session->rmonitor_w - x; -// if(w < rmonitor_meters->get_w()) w = rmonitor_meters->get_w(); -// gui->clear_box(0, -// 0, -// mwindow->session->rmonitor_w, -// mwindow->session->rmonitor_h); -// gui->draw_9segment(x, -// 0, -// w, -// mwindow->session->rmonitor_h, -// rmonitor_meters); -} - - - - - - -void BlondTheme::draw_mwindow_bg(MWindowGUI *gui) -{ -// Button bar - int mbuttons_rightedge = mbuttons_x - + get_image("end")->get_w() + 7 * get_image("play")->get_w() + get_image("end")->get_w() - + mtransport_margin - + 2 * get_image("arrow")->get_w() - + toggle_margin - + 2 * get_image("autokeyframe")->get_w() - + toggle_margin - + (14 + 1) * get_image("goto")->get_w() + 5; // I don't know why + 1!! - gui->draw_3segmenth(mbuttons_x, - mbuttons_y, - mbuttons_rightedge, - mbuttons_x, - mbuttons_rightedge, - get_image("mbutton_bg"), - 0); - - gui->draw_3segmenth(mbuttons_x + mbuttons_rightedge, - mbuttons_y, - mwindow->session->mwindow_w, - get_image("mbutton_blue")); - - int pdw = get_image("panel_divider")->get_w(); - int x = mbuttons_x; - x += get_image("end")->get_w() + 7 * get_image("play")->get_w() + get_image("end")->get_w(); - x += mtransport_margin; // the control buttons - - gui->draw_vframe(get_image("panel_divider"), - x - toggle_margin / 2 - pdw / 2 + 2, - mbuttons_y - 1); - x += 2 * get_image("arrow")->get_w() + toggle_margin; // the mode buttons - - gui->draw_vframe(get_image("panel_divider"), - x - toggle_margin / 2 - pdw / 2 + 2, - mbuttons_y - 1); - - x += 2 * get_image("autokeyframe")->get_w() + toggle_margin; // the state toggle buttons - gui->draw_vframe(get_image("panel_divider"), - x - toggle_margin / 2 - pdw / 2 + 2, - mbuttons_y - 1); - -// Clock - gui->draw_3segmenth(0, - mbuttons_y + get_image("mbutton_bg")->get_h() - 1, - get_image("patchbay_bg")->get_w(), - get_image("clock_bg")); - -// Patchbay - gui->draw_3segmentv(patchbay_x, - patchbay_y, - patchbay_h, - get_image("patchbay_bg")); - -// Track canvas - gui->draw_9segment(mcanvas_x, - mcanvas_y, - mcanvas_w, - mcanvas_h, - get_image("tracks_bg")); - -// Timebar - gui->draw_3segmenth(mtimebar_x, - mtimebar_y, - mtimebar_w, - get_image("timebar_bg")); - -// Zoombar -#define ZOOMBAR_CENTER 888 - gui->draw_3segmenth(mzoom_x, - mzoom_y, - ZOOMBAR_CENTER, - get_image("zoombar_left")); - if(mzoom_w > ZOOMBAR_CENTER) - gui->draw_3segmenth(mzoom_x + ZOOMBAR_CENTER, - mzoom_y, - mzoom_w - ZOOMBAR_CENTER, - get_image("zoombar_right")); - - -// Status - gui->draw_3segmenth(mstatus_x, - mstatus_y, - ZOOMBAR_CENTER, - get_image("statusbar_left")); - - if(mstatus_w > ZOOMBAR_CENTER) - gui->draw_3segmenth(mstatus_x + ZOOMBAR_CENTER, - mstatus_y, - mstatus_w - ZOOMBAR_CENTER, - get_image("statusbar_right")); - -} - -void BlondTheme::draw_cwindow_bg(CWindowGUI *gui) -{ - const int button_division = 570; - gui->draw_3segmentv(0, 0, ccomposite_h, get_image("cpanel_bg")); - gui->draw_3segmenth(0, ccomposite_h, button_division, get_image("cbuttons_left")); - if(mwindow->edl->session->cwindow_meter) - { - gui->draw_3segmenth(button_division, - ccomposite_h, - cmeter_x - CWINDOW_METER_MARGIN - button_division, - get_image("cbuttons_right")); - gui->draw_9segment(cmeter_x - CWINDOW_METER_MARGIN, - 0, - mwindow->session->cwindow_w - cmeter_x + CWINDOW_METER_MARGIN, - mwindow->session->cwindow_h, - get_image("cmeter_bg")); - } - else - { - gui->draw_3segmenth(button_division, - ccomposite_h, - cmeter_x - CWINDOW_METER_MARGIN - button_division + 100, - get_image("cbuttons_right")); - } -} - -void BlondTheme::draw_vwindow_bg(VWindowGUI *gui) -{ - const int button_division = 400; - gui->draw_3segmenth(0, - vcanvas_h, - button_division, - get_image("vbuttons_left")); - if(mwindow->edl->session->vwindow_meter) - { - gui->draw_3segmenth(button_division, - vcanvas_h, - vmeter_x - VWINDOW_METER_MARGIN - button_division, - get_image("cbuttons_right")); - gui->draw_9segment(vmeter_x - VWINDOW_METER_MARGIN, - 0, - mwindow->session->vwindow_w - vmeter_x + VWINDOW_METER_MARGIN, - mwindow->session->vwindow_h, - get_image("cmeter_bg")); - } - else - { - gui->draw_3segmenth(button_division, - vcanvas_h, - vmeter_x - VWINDOW_METER_MARGIN - button_division + 100, - get_image("cbuttons_right")); - } -} - -void BlondTheme::get_preferences_sizes() -{ -} - - -void BlondTheme::draw_preferences_bg(PreferencesWindow *gui) -{ - gui->draw_vframe(get_image("preferences_bg"), 0, 0); -} - -void BlondTheme::get_new_sizes(NewWindow *gui) -{ -} - -void BlondTheme::draw_new_bg(NewWindow *gui) -{ - gui->draw_vframe(get_image("new_bg"), 0, 0); -} - -void BlondTheme::draw_setformat_bg(SetFormatWindow *gui) -{ - gui->draw_vframe(get_image("setformat_bg"), 0, 0); -} - - -// pmd: SUV (same), 1_2_2blond (nonexist) -void BlondTheme::get_plugindialog_sizes() -{ - int x = 10, y = 30; - plugindialog_new_x = x; - plugindialog_new_y = y; - plugindialog_shared_x = mwindow->session->plugindialog_w / 3; - plugindialog_shared_y = y; - plugindialog_module_x = mwindow->session->plugindialog_w * 2 / 3; - plugindialog_module_y = y; - - plugindialog_new_w = plugindialog_shared_x - plugindialog_new_x - 10; - plugindialog_new_h = mwindow->session->plugindialog_h - 120; - plugindialog_shared_w = plugindialog_module_x - plugindialog_shared_x - 10; - plugindialog_shared_h = mwindow->session->plugindialog_h - 120; - plugindialog_module_w = mwindow->session->plugindialog_w - plugindialog_module_x - 10; - plugindialog_module_h = mwindow->session->plugindialog_h - 120; - - plugindialog_newattach_x = plugindialog_new_x + 20; - plugindialog_newattach_y = plugindialog_new_y + plugindialog_new_h + 10; - plugindialog_sharedattach_x = plugindialog_shared_x + 20; - plugindialog_sharedattach_y = plugindialog_shared_y + plugindialog_shared_h + 10; - plugindialog_moduleattach_x = plugindialog_module_x + 20; - plugindialog_moduleattach_y = plugindialog_module_y + plugindialog_module_h + 10; -} - - - - - diff --git a/cinelerra-5.1/plugins/theme_blond_cv/buttons.xcf.bz2 b/cinelerra-5.1/plugins/theme_blond_cv/buttons.xcf.bz2 deleted file mode 100644 index 4f6fd96e5656eb44fdf4493809c04f23d9c0e5d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3300 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

NCqbJ4xOD#oUoj6eKjGpHl!JtODBr diff --git a/cinelerra-5.1/plugins/theme_blond_cv/cwindow.xcf.bz2 b/cinelerra-5.1/plugins/theme_blond_cv/cwindow.xcf.bz2 deleted file mode 100644 index 923c0f810fd840e1deaedd67f3091b32159ac301..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24451 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%0DXN&TC-;r16(7T7!muFxCJ!HY> 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 Y#B&@i4VNs?*8lun$rRy2LacFhRF;hJqW}N^ diff --git a/cinelerra-5.1/plugins/theme_blond_cv/cwindow2.xcf.bz2 b/cinelerra-5.1/plugins/theme_blond_cv/cwindow2.xcf.bz2 deleted file mode 100644 index 9c52ecff4ed066dc196c11b303d223bd18ef840d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20676 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Πg0iP#BrkY0NKq3_A%YG|l1!3J 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 WxLs0hogR<>#oUoj6eKZ8a3}!xbXqz9 diff --git a/cinelerra-5.1/plugins/theme_blond_cv/hscroll.xcf.bz2 b/cinelerra-5.1/plugins/theme_blond_cv/hscroll.xcf.bz2 deleted file mode 100644 index b3c4e12567de8f6d9e4717363328b1b4409f55e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205823 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

k0Y5fG)L!vgpUZ~O~Lj%@4FP4L+3wD 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 -N52oF&4i;hDJb-;(wsY`j{IP$B-80h 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 z zUftM%r${pR0 zWj>Uml1YgWHX?VsEyA9Z=t@nb)Dv|ul*DqMPUfjYV_)BBnkJ1v%3LZ!mEns=rs08z zhNPy21g7*;VpGwY*^jzp*obnLj7~zsOxbCw^Fs`pS%jjLY{Lya(Wr>A91?S8OepcY zgmqk91i-cwmI@eieg<5{8YLR0nzm%UHD0vCBGkff-{ZrH69lnJFi}NYW>c!g9yiTB&1>%j$j6ybz2P8Sg|&gm`-B!|J&9)l zhU6wiYz~E3{S$IR1IzGeG-FM4OA6{&O&vM#v2Pn(N609+I43ga%FDgqB=IU7!EPG> zd(ydS?1=DGydZwmBM=dNfT%6VElT3J{&V^dM&k{;Jv}s-bGr=a%2Ubq($go0yI8=( zmI{bNG%K}^k^0A`I7bEHNM^}E#W8AlPp)_D$(2&MJZHLK+{=R#$~^m+=FZqSu(jE~ zQIt`-W=$AVrg{g8+e1}~EVAuw)6B7IH{Clf@!vd#vA1o<(z>q0FF2ia)ZYoxK4J5e zqMtajmQp9~5AdeXP`9aHZBMy=A^552lzuZrwWzu9sQP2ko;(6!q@)l^eO40%1dJS> z=OJwVzqTkp=4b8u>NsD_t~uEcq?E_~kN9K{<5s%wn?GLZu?l7BHp*nUh>7PQPzRUk za=b4a=&S+jtuV)t?35IoS zrQNATshIYrH*MHyg<)?v(8gcyH+c;HXgfWgcl6(9>R%ZA=gS_w>mNw*pJb2s(MnQ9 zqv;*vvE5fw)Aw@8McM361ZaO@$mIE|IfwgdFyYM>Io85*c%}+&_G!}TPffk14K4L{!M^jF1~eTAIFbb` zQr1%2rOZ~e&ZcgeYNwk_meDllF=<+Diie$Y79G%#UXsPK$_hS%rLIExtqO2mcp(N2 zYN)(*)l|`7z-0>0IQla}!$FBdRw|)J0}eUhv-i)ocnoM^n4_fz*6tW$ zLsG}cJwt$$`2P2pY@AY(%PrnG^;mUE8BQiJ@hPpxN4qIBifNBt4g=0N^rZ4|?m0XV zr+Ata1ez2{;ufr6xkroedJs^<0MaJEEUn z44$CTG!Y!K`8-_{RG-TlPjVX$lqwj@o5ZBT@+f#X8t}V>$0^;eKz0+FL^utM;Eb0| zp{;D6U&j+vqF7VHM)E6(fr7xDg(?VqZ5I5p#RkTVbp(pQ;?LeRdFL|ea}GTp5$lLI zLZNJMN?}7cbAdvI5}}IhQwCTjm@$SV$%e_hDK%tFAxPNloTeHCO$PvnS!l%(MFqxS zP{kMyjSw&x4U%_yQk!BT95ANN3?>r_B(Ss(4JFDkrqXI!>65)QH8RThCQeu`78n#* zQEb>?H1NNDS1Q4yV*;A;oEcn`zTsoM)q#PJN&Olumy2(01#CKDkwYkhyip)I!`gYA zNS(L?Cra|9v4CYFV-1$UMJti?F@fGMVw`t==E9rbA4 zvSWf+?^e!E#I&S*x_XBUJj4aIn=c^VX9&2(?^Ju)!lq2Rqvc!6Rebupq$POFr_Jm7-36cY$;BJw8O?uV^*o5 zZhcs4pB>EmhcS|cqatxQw>|!Vkdr7@KWu@_CBQ*tLXO#dwdim#>2P({w#+RwiEghN z=S;UHI#aETC%vsJ4|{xhJVhTLI_Yv*+EU*xi`MBq8&?+jYGu;2s!Sy?V(QY;%I8?V zh@?^1)*o!nN*Gx|7dzm=0`Cm+RT)v2=rm!5riLlnI(~ap?HsR?ZST1zU5VMUJWU!l z;X4v|j17VmLX@P~-J2KA90ea{P*H}Ck8Poqgq}2x3$dggPU8DWfV}U*2xSNb&Q-8Xj!ELV9PTK z7Jy}gAf(W!cuG_%3|2DQ9RrB&5fmZ=3o@08%NIMVv7H(%qX_=;m}<@wSAuY^YcbR4I|+qJ;%w{vgO0P_vQy(|F}6D|M}@h8nxp%_#5Q zGv+$)KI^qk4vtiJi*>$psKQa%bg-!EuYK^}4UOCyHcv41Oqgv++fmN$G+|S;e9exM zjJ(FVF&8#Y*Cj4T1K~mEp)3jUGZxA_dVO z5aJnVXr~3?w}8g0?Yz?Gv}JF@h@Uz2Q{1UX#(HHF@E?Hn4o7U8ly<40gX7%#Aml;% zK}GSoau6M%&NpGX>kk<{YHXURqH#_x1w4_f(zb?LcHC0irdCsBsnVsU5{g>WE;P$8 zCg7t)#uL{VOlXSa=6-8Mv~eju@nmI(1+CJbA(Cj6*=eNbHLyMG{I){_PHdy>z5eEQbW)FcA?15sXkz+C7TxgrQf@P5YArOwg{g zq(%zF#gz+C69O1h2>VYDspo_fy^uK!vVa3W@?66EL#7nkxAfplLwk4i`Y_{{sW1+B5x6 zyR`lcrCAkKQd-kJ4#kdS_-?Ct)haj?_)ptw&gOA84I6M=3lCaOiUt%EDeVhT6R}XK ziP;F?O^e71f`@2Q!$nKf(6Ceu77_yF6l534WGu`UzRaT-wQx){Ml_nH1*n)sL!nJg zY7{+Dy_8KGQa57KYs6e%ly>%Xqb-`LN@a#=y9tJgP0TL|V^q~LoSGM+(w1mon4v=p zWylsmE9rs31%ja0K-g#*q<6+;nqjYNqtSE*S7Fjqfn8K?dv+art&*Apx$DE2k zow{3Kyq2(>!?b&Wo3*1Pj*}{Zx}-PQ5{;g5M#ZM7@#((ttr#ry2Br0Ms(Geel`+jm znKB-I5-2p5;dTvVAW|m>peT`hf@Tt{uo8L3!9@&YEsON6Van6)l=9xQG^H%cta`eW;wtauZ(8{kC=Xj1dd_&od?Y0 ztz?c7_zgqi(r44ur+vX-Zv6cuiozl@$r4;S8gbGpY;N3>n+Q1lNUSK5Lce-nBZKk^ z5rz!GFo^wg^@@33I~+%nde#|bqs%`o{D!VtzN28EO}I$Pgh`^)P+WyzCN4sOa>^A8qba3qsjM*p!J4}C$*RpT_z;7!dXd#;#UOrHf6!S8}8BXijEg8 zA)`Bo0mjXWUN?^Mgkv;p7^pBzCNXxUkZiD!O4og4N$WNltDo5gMfFY z-ca^SCY}YH1~7n8bWx$kA_FY*20(x_kZ(ntHLnu|cZ8aj5J1R4?VYn&SUMPY3Q7tc zpnh zX{pf0m6z4Kk-DTvIa9n*%#`R;sO-04vYH+$-N!RlkF!$_lg6~!N>ksdqnxyMR62*x zT3*N2zWK?gP~zx~TDh1hM(R^Vu;y&|3UEidRQ?%F@~KJno&_pgZ6 z50Eh^fYh0F0-7`+&S?d?E(D@oylIkj{*R^pb0Wxt`>Hl{5rYBS2%SK94(N7?V$ipv zJK=>$OI0SCH5<}vnkhBGOqV!)_rrf*;XaG;e?7?MBi5SLQjLn*g%t_(0LC$ zAq3o_h0IP4N_wN|Innf-?58rvaZ5DmI*(xWB8B4uP6GnSSY{a?Ml3B%Y+Qh`qu&cA z$&zkt`xaA{jIf^bU5+QeO&caAcidYRf`v3x6tP&Mp)hq?6BdP)Zao5unW}-%f$N57 z(eQ{B?H>6QSV3J^DoqiDV3M?mJM1nRBS}XLI|w3?N)`wd0}+tyKA`9HOBpH6Bd}Q& z<&#IaQq-cK14}t;XF7)slu^c-D>)AszZP0CqWN~lLIG4JF1SRjRZXj?C@IL_t}M_- zP;hESfu!hgudx|$YhdX1!DYZ<$W5@#vkDbsi!4pi#*^N?(ZhZTT6g%Hrc2zVX~e#g z+OlUY572A0=9a9x^DGy6N=%9}m$P#8OLE1YMI;JA#V+Ke_P4O~V&`d2K}G~gV87=tRR=;HM3#E9vPO6Q(qaGHR@G%;_B4#mTYp-e5pDbEtJKVO%nHv zns+Nb{!2O;!&sv8Tj0Ctr`2d{G_wkLrf+2GV}07YYc}xqHh3LY8t00Ws$%y_x{j*W z=)ADWh`7}&LY1PJbL+m+ERBjR%L+Aj&ya92ma|q=m1Y!}V7xdcGcsY0|1K(WC~Ds< z6r$Am4c6flot{0`!G>oe47M<0v5dlqFoPh-cns^ZYExvVb!G~6ma?el(Ak{eyi~(= zE-6Xfesca5ADHJ{e11EaJU4LljGqC}Y}#c>z@t}ZNYSi#7)@AC>kVCG@7lAie04Wd z=s2UBpr^xdj>ER-OdK1fEVE;EJ4H4= zGY)$o+8LDe&>q-9>H=X1mIRf>@-h6ZP_sYhVi)vx{v3SkXry5=A}|rnNy%SZj-PDk znVY1P_u91`mV`HlctDn>D{|h(y2)3La5N)0w{xCdjKJ4|d@L%tPAZNLCb)kC+q@<{ zLr1DG;&i|D+0R?;_(UxSBWfSEK{$Y5FaYCTXq%Q%dmm^|dZj(`ialCc_De9d`V1}j zB|j0uBMyaw@!y!Glj@&QhFyo3J4^Ev-?Ebk zR*@Pq%gU&EW6H2w(>kUc6j6lGXzI0(8R8|pEsNl`&I5u|gA9`yaAa_48k0p;vn4%Y zmP%2URKp4-C%mtA{DbV=Ug@@~ofcX2+_0HTUPDI0j$&as^qSOE3g+aS34%kNjd@iQiRnc+NKN`HL*VEov~WMX0qs`Lk&wL6H0uPf`ZYpmqv_t zl8Ip{1-Y=VbaBJ&w{USvDJeFR+)NxaGiEI?aXv#++o`g+@37!-ttk}2ElEQ-z6CVK z#H~)lZ-KI2$zys`RWfXygwqCk8Z`}*4Pc$c1^Oi;Ah0pPvFIqEv0zm8p(BP9zb(gJ ztgg{%S1bsQ&@(vDv-a#**yKY8OWsEM_dxcY~aAl1qz#(E%KOd zY4Q#DD`yQdY|e?5N`THxQHQrME%_x}4SJhChpL!itsEXLFljv36@}(D;g{auZUbea zh9O*FiFm0rE?&5TF+!ckr0xYCK6g?ig>a-8#9Cb{k=de+k3vu^Pb`9kHAPjWrXva>+#8Smb zY?QSdB`3CPJ$nq%Hr2NaldjS?t*C8GB~seiha(G7vwc|#W)GnEYYxZi(vt0Tn#gk_ z$&@(f&N+u{i<57?)mz2`ikllYVzzEHc37J-(M+wt+f(1Rb2YZ9ZBqsony`Cn zyy{yN;@Gyu25CB&x@P$gL?uy0VJho1Tu{`Ni@2&^=>>?_bZl<-$<#5|)_G+c7YY|x z8Ltr5Lq8?!e4}#>d^@o7yPhQol4wr<=YNaxr z28Eh6W_tX%8zz))T6pVq@Rr>vvTBskg3b##=b5_MQE6#ut`0>eS(AjKa7<#nV%uoR zHA|$kRMDWRlI=Nz8>8%v5Ky2n+Yv(fdIcs60=lmtn!}W|n3_}AY_@}{#Q|_F1RNIt zoKg}vOo`a|x1nx)tQZUoDPt1?qH#*zfM;65=I@7AvJ;M53c0Ux= zz|gg+b~GmoNY@uts2cCt7a+k1N!m-+9#Ilcd7K;x6Poossj_GdB)Vvr%%Hy&h@iU` z3c?h2QjAPk87Nf&K%!AH5Gghtg~4;t8Ae%X7@)1VCJ!#N1=K29G&tS}= z_zvR7UQZ!|Y!>EQDT}OB46`WZ5qcQUNL7w(Jkp4ZD^~L3ElP8(XL+`mnWt4sQgBlY zm|=!loyv1IS=#2gGMV0C)lo+Um@|hyW#wu+E0WkLg_&;DrADi2^6Lr%nBpBTJlM#- z8wPbZB$hW|VCo>TxM61bqev-^!y%+RV+a-yp^XB^E(i!H9GVcoNrsTXmWM-_9w{tj zD4}7t6G1Q_xE6xZ8GHwN-`G9FR;}DmVC3JCRM_O#IHp%mZqbzj6psMU39^P8Rf8cQ zP(X?d7fRZUnJ~5*7GTR6T2aeOXvpm>{nu&E>2xjQ@^Cphj($uEb2}o69?42liYeqh zk!nz(>2R?_>>hca&n?UHxA;Qn)fAlhc6Gw!4-RZG5FHTkgcxva#u%)uB-+u7Dhv-` zah40w=zY7H<Q`3XoI!Vl9d~gQ=MlsOG zl{9hBpUx}wPQQ8TY#wGqWAX<*!I8(&*MDw5t{AEAF7QEv^$a9HY8d;Ucj}r%fokIW zpLlk{g_~Hfj!N>y7d9?!g{TnJ^|$4&07zE^B6s8)qB~y%(C60Y?`%o^BIh%BG%QRqFQE+%L>?_4EYTlj7T@P z??o_9B|_vjU_E5}wz$_#GEQd8#jlfFS!N6=s@7VDSxZGxB21y8VKG-~T5@W_XvQj4 zlp}#qw*%-3FjgvWgJGdqu;4w}vc;G3o|beIFHc7tvcRN^jf_yBxd#;=#Ibq(yb3}0 z#8@aCsTlVKjL62So-aa;+!=7yEiJNB52~`$bl~8@EKE+&P_`^sig;nLzoj9eZiVzE zaE&C}2A32Xf5j}#ip>hA)0KD@6doXPHfTSoz2YdMk@UrG^`4MnP*||?X!=3-u7#xU zT}~YHR;jBhvXru!CK9A1my9K+wiRcTCMl*ZI-xTHyTqYO3n6V8Ejd!yl+h~}OIB0C zaBtsJzuB;mP~G!7oU^4VvY9D|CKnk^mg1DlWoRwm(^@t&LlHrM(FH~p%b@C(!Al@z zL-OVa4@QLQg4H&5##;x?7(g)$(I`bH)Co)wrzJK_I1EULQo6Z|e^a@nHp?`|f(2Iv z@HyoTXxDZTkTu*lFA}1qMMDUGD4^$x(7=I(l%@<6WXWko64+w1R>DlEWUeXPXb&{r zWWlxvQIZE1LLdkMkkUd)d@^ByM43@#7Nr)HFj=u|luRYOwu~!7RxyNX?2?9upHs^= zHAj?c(+!8tCzmO@mV2a%C|Vm3a15P=TN7*)#XlI$2w}iT0f~)rj2bE3-3(Mlj*yl{ zficPf62jaX1(o!su%Qs1)J`-;-UK$~~(!%%m zgt1$^f@JAq7OwR zI5Z|=K7M9=EI*a$&ws>L9^_`1U`taL@F<~(5d<{fGRw$TK=cBP7ZauJJTMdSw&<=j zX>G*jswC7nga44noFEapZ&W?zvZOE&ZAMxD0X>_rX&JJ2w7ytB+O_O44Y+pww(nj% zo6?X7k2lJTW`yvjx6!Bb263_7j@znVKQra3*LmP*;hjs$x5#5p;g?QQ)WC5jT7;r1 z$zFwfDyewW!DKkPwJ@FAdi|JvJ_muwhaP3KvF`&z*e9t7Ex|b=M@oDS1M08X?aCtE zs~xIc#t0#j_1V|<^6Z5w@}=p67KU?Ab$f3-d+IamVZ|$=osO``7;h``t~NUXx(H z+$9nDj^2Y1BEoJw#*04N5C3J`A|^9SgCW29T;bzj;NhLg2njky<@giHCyq~@ySr~w z@o6$W+?$!?dxKe*yMiWlPiYJ^CY62)<-kpE97#e6h>qU>1Y)MtC5jz)K#qrh&C>4hE5MlB`wA>1752JJ&Wlu&*5$>2;~- zsMsa=4Q{B+QzcQG6Ot_C0~9P8trt})Q}SwLy)AJ8R7HQLKQ*)ba)a`x=}=T**lF)av)UYmvM7T)Dk3J<+0+`JlQRv&8nCVcaKXkTZbg5k$J z5k*dupz3x|z#xlT*M5DrE#A!V9K5{#&djz6)+47_$_mBrHW>Ex{cKXKyuFNEoa?d? z&RNjl%%ZfN#Ubn#0`09YK4(-Bn;f1yFJCZOU*#gWIBi?^SB zW(ZhC&tk%>PmhDj&~mQmI4GM@JPda&+$^_vNwIo7FxqO*Ht-dZ-yqOP$3dAOfDJT+ zbMY_!!T>T8Cw4cXY;6t&Fq>wDyWNv^H79Vlsxnljh)>gJ`EK<67iq*h$61QLv0u%7 z9Zbxp#n*Z170RMkK0xlinl+nx*bYzv!X#X$Mq=95e%g@vwkue#q{!;jFmU6`${M$D zD9?>L2TPwORKk~qPUv}viK1l5j0U;TWSdiIUzp$D13@Zr(KB5qswpQrOta+oRH(ZYb}2QqVfOZ2LmWBHNP-NGD-&?pQRzUZJSCu!E3y_u*U7 zxhWt@?S&CB@FICOJqBc)++oNoixk~x`T6eUBUX%rIQ0kcOoaSE>pY-hRGnfrYluRAUG~xdDfH1<6Gfe%24=9_bu%mY+LQ^pQaTSV6gN4^Gu`+2O;#` zQw{dI5`8Xm_Jp{~7LRh+!G8I3sO!W2VA3%!s!mOC<`B>%=j=W3PXik+W(+1-m@kHB zTl)a@y$otnerNA0-qE>cipmIvj^#6lpz7;nyBqZ`6RL$CX`mbxcgS+bOQJ<(eA;+` zq*o&HCap;AYwv=sSy770cGRbY4H_T$FfJv$Wt^pu7pDOM;<8VN<>bxk;J7}3H8+6n z(otmDPJ%@%m~EkYqtCh`F)riaA%!*fnALi zkh)9Uzb9mAA7I(E?ZFBPuq}w!+@wUAoe2(?M5Z;VgXjnlqxbb(HH@vXa+KIV z!+Xfv@QKFct~naY@TwijLE*!w-p@ZmOeiTiwP`E}?g?^Oq4NaNCT-a#kEq~$jixXC zw}A8rWvaxPxw$JFkOdNKM0f~V^iYIYQe?N}+tMamrGlvGG>&&^9t5ID zmGqWpFq_TY@MUyOL8r8bv9e)+F_#F)zCq7oU=*X!6PS4HSs7G-ws;Vn+?FaQSDrW~ zi2E%s zb?e-SiHRjL($C&^NyeeT7D-y)83d{s%uQ$$;)WX(UMqldnG=COlXBcJ-?EJ@J}=_4 z2dsL(GG6f=|IPfB@atEoy^!s`#UQp`RZ$; zI=pgB&S3{Mn=Jt^;^j55g8Ifh(KvbE5s4f%F`1iNFlIB*oDa$>{a`v%^5DH*Fn zhrK{W=CZX$@j0M0JFBd}nd0^aj!7<=B01!=3ppAUw3Tb@8Xk1m_78<$www{SLNfZ5 zRI39_7ze4I8*Yg*7%jp);5p$~-OP+!W@k)E+>1hXR&16F<5{cV@`|&$7LXu9gQTwO zxi`3CBX(0W%!H8{{mat6b$sbtbCeh>xB4R$x(TwIuvN>avERc#(zYlLGP*s!# zCD7b}f?k`iyHfD!l>?G}khENWfaPWQP?@vZ%jquIk}1C-P~kk9P08iiF%C5#MI0FV zBzTF8%NVrg99FWF8|ZLX=X$w4r_3Le$mwjWhRRne7x0Q0dc$fKu0vg*2=>|{sG05c z8>w8mmukGIW_q%4|NAr9m~SJO4d0o*zIa!EpxX9b88Zj3A}isZ6UjXlvENY3DZ5p1 zBFn#Lch||m9)q*A>K7L-SbT7>9ufG!m;_e5^Jd~}^TSPV2)`E7Gx|0`!R&+Rf8))` zI`U2j>57w#VrN3zfk7&P{ydkZihpW-Ppub!`}>Bw{`8X6F8{Qi*{1`-yH&L_abiIb zbk!iW5p}EALNGj7q<*v3p#dp14}|3LaC-j)aws#>@jLPMF1L1q9joj znTrTm+1vi0xgg!x+5a)ig1*IAjX>OJnJJ_Pn;L|h{R1{vMUh_x1+0%}jIGFkKkNw6 zu~B}dhtt!5WZr>-S>-eO`AG8a=C>helz9tLJL4l$f+M8>QEAAu2g$v5oKBl?DV$ef zC;i0BET-z7p;&6q!!OKV_o5slmYbb4$jV7JFyu0QG@NjkZtRV~cob zFC^KW`Qgi$@+W}U9qw6caSk$~m<&DPzu8zAxZB=T1Z>k6K}9EQy2nLDuU}?QCo6S% zSfFJtH|)7Tvm^zkPm`6u{p#_@Al;*$e(p-F@X_s}%_$^4RTn3gYGZ6O{$ndQgF1PNAW30lTGCSs##JHWaPcD9Np50yO1Ora?Z_y-7_E zJG1`YlyAvm;w5h~X>=$iS4^?#2wSPrQbwWMulANeAfUU&gLhsql$9~0kc|hHn=dOl zX}oJ;<*nbz?T!Jqbadvz77lpwwSG-^M^%P4>Za2(g=A%wv_j2-DlGKoz9~k?TYBEf zzntQWIIcgpj}Eo|-HyK_qyjIFW`w!M4zyNIAQoWSio{9uX(W#XB!ic?HI<*kUqSRpE7tr5F8MpB2>t?x_ zHa2hSU-|nrs-mNzdG%NRFYxU4s|A5r4~On>QVJf-6Fihax{<_FHe|gUO?7|dj_`&G zF&z4JBP(Lx!E!15HcdlAxlol_{+HFZF%%T~g$DkpB=nVDIG zb>VCuNnxR+mlC#w*l99^tT<)tB+$-6w%ibnCxo|MFWEa*eD+O{RvW*II^mI&O>OUe zPn6(?Xa}*ZVB1#`Lp}(jD)VZYCL5QL=tH6t0Mjy!tlCM3#cF(zW5a*OzqUga%IQAnl}o@*pFTVN(Sg{0qk zH>)L*MzE@y{6`pB>OY>p2DEEz&a-re`J)4|dKz?4rf1kx!M&W22DTYj%2D@xG+|NV zgsaoYc^7ZmCB+NsH5|Rmfa`H;K;ee4jcOY9(nm!%16K$-JZc@Ym)xJIUU=YWzPR&n znx0{l_Tg;5>}hE^*<#<&2+57>YMrEq3{!GfcZNT38Wx=E?ZeBxDy(-O@}!m5Y(^_U zGddXUO+2JNf3}v^y7^WjoV=YZE-slziC61=rVb{7bH@FI!`MHreq!9)c`&pYQNXiVHj4^Q<>g@B-rmmJ4sR{oL8ahX?d#BHH30*_ z?Uxat3;IWA{$tRj998h$a^m{SX$YU) z#Hr&-X_9}&x}jyNpOdc*j^7@A^)k0p5g~f>2qJGx@+!9sVqo1&n zP}q6b`O)#TOKnHw>{i?8JA+L9#p2;a#7plgxeH!f-$nN{!>y`3p@p0024Jo z%5$inAf)(U-60stiL553Ji(pn|AMrs8j%)KjqI}LGe#4bGe5;t*e(KBq>c4)VI@me3mRYd;MpRJKuAZCuT^Vod+V% zuT1k$r!0~Av-yo~?H06!X{Z&n{?$9B0#w#SORgKiVCJi@tOYdDdgR<+s%_-_SXGe3 zqn?$8pda1mA@K+#3~LYMOqekhDFv&8&*BrV{`wdGd#5pkh=ZJ_vOE}KIiQS`F!dl7n52o9d>*%WA1nIO!KO176zUT+UV|-+~|YqfyELK69Lf)rhpZS6XJx1{cQM z>X}aKGnV!Lu8ZKU&>Y!zEK)OjOC_5Yi{RsZl__cPsd>dR+;8iHe``-4s?zN{o${2F ziDOM#hD1>Z!Ko7l2j#yw$oo3$n;;>cW4Cs@K)+zs#vORz z_Sq7A9$>I6KhJn|&v$VGec-#$Cw(pb!LP|WFN!sqRY=XM+qVoeBz^%<`L>U3 zV@_-XcRn4&3^{kl5Q;3Jt`Fiz)}nN8cyLv9R~d^5oggImEi@}I>R~1h64{cS19bwF zDU535{DXvAu=hd``^((BExm zL4OzxS2pp4W~UO*HA}`E4(FZ;=q*|q9$Hx$727CFNGgQb?m@~ry1=4eZJ*c71ThdykSFzI5!O^yC~=1`{Vp7JyuEdmdJz)V1yR$GiGgF1|y0KTLgneACJrL zaaWj063GH@CX$JNfT#pMwy5OE+mHbwr$*MyZAV4 zRIkx-yjxDV)4Q|!`rfTMcl!NvAL-$wm8a8E@31o(}ZoR27I$H3Hg8DaK8X6czvi5&JUa z<*+h$eBjNI8T&T7fSw_mFO($XXGTi&+z2qM*+lE{P5ZwHQX|=giOW1Q+L&i%uZNQP z+B{(h^OWCkdm?3Ef`NW&e2{J`iFtzYQjlzvwSQK952)@_Cvf-?mq+Uwe0gpW7jsOX zNRX!meinJIRiQe%_mh2V;Dh4fRS8GB|gF(PrJ#=Q)TK{I8@OG`#F&6b>j0Ym0;aw5rLijw%D zwxySko}4Q(e%4BdqHM|fwlMi13>xq|lm6);*w^7f%mFpUqP$YGy~!d$;*&B1FehDy zyUxMT5N7_N4fjgK6dZ^yMC2>LPej$~#`4{dt#efCJ$OV|X%nefP%e`WjVjKll)Wvr zuV04?HB`d7q8Cfuz8N{57esX-;lFEA{*5*=y>kC@zvi4}gkO+{Ybjwh{iWOU3G>76 zg6|5*9bogB>G`P9qnOGKFQwnbU8yw9lC52=%svpXc2^nTur7t%lCj zmbNvhvSW5$?$#!Uy-E7;&@r9WKWioT#^vPASLa`Hk7SOfjU$(Mu~tTdr;q>gJi33z zE+Ldp9wE#PSo$XV^p?M_%kYVIU>r)T=hL*?XR+isUFMyOPo`=4g|mPD*8dY}A>?~W zFe+Q@Q{jAV{Q&qF%!fO?xr~>&7ysOTOux|n_GQGrZQ&}ZI3kf2)0ESOt!+@HZyBVm zd>+wR6Q;`I9pHU2nh+$PgY)(E!<$&e2U^Gj*^M-7h4N^zw~{t^%*A-bQaC@{S4?C} zciW7*wXbGnJ5@e%HNi2nx1id1#pqhpYZzj4e;OKOX8VIh5lPCqWwO2jdw2;rK%}Ks?YD zBt?eXxjFs7z4os9h9XSAis%~6PAfFsu(kiQ5?FYETu0vrI-$$KM6rGN zcYBfGg&{~?dlg||+~vLCsZZW}IV&Sc_VBIODDv(x&sXK3Pu<>D zSyF#wk2 zX-AR9Y#Z)c@`<_`!dI^5a#vd}P=V+x^zvx-A*kxow^@fh$1?k^JyNk)K8a@M*>~;v z`bR|(JX06L3!$+mP`>xGyoI+u@qs;zGQOK?unQZNsH@+t9F(us1%?zION)D(-qPRs zai_HKwIr4b_jP>Vh_bQ6` zs*MaGA9--M`32;o6be;~L<)H7B{HeT8EwIp7eCS!M{4PE%AwR4M%gL~s%|#z$G;l? z#16~+33aZFFY(&;`{?=gPW`dVH$}qQOGMx#v`V7c&&PzU{+6M0qoeeoBz}9~Fg;xX zCJz8=Zwl9&HA(td7%1^-pG~#Fh)=AVI#rRDmh?BdJvdd`BY6Hv7=ekp62SwPQfY@(}+0AarcWDCM zqSMJ7>_^-|0TPUWZWw>dY=xy{I({ z9O^yoRG~Zrt;_6+Ph7BpDSA1GqC1&;PWgx1tCYJ13@oZmerKq$>p)PpZu5K~qq02} z@heC@2rC#Lza1AIhojyPRlnOPNdXJ5^#K%tF6vXU8H|-4_b$J+e4x3XJQ7@1wpkOf zp88Uoa*3T?1Ukh6n)|58t3j`&5T>g!;WcV$A9@${0v9bXeGz2Y%Pj#0w*9E@^~D$e zy5OqW6RAnuH>GY4m|5ua4K13u6|(8TMIQhq=;~5(I*)(MkppFonO`yq=+x^7reFLr z;Zo`O$OJiUyDC(%AJ8#lpbmQxbOK( zN=cb*{3rb}CiB2bmq1aof=c zKd9UvQG3yGbmz13lB{m5^HVPJxAXMLKA_0?jHpwyp_q^E&>!u3@KStNMsyT>;ZKw< zP}093_>s|?>aSz9sLRK>(Jq+-)wM(BS7JKQr0`46=I2ByTFs@tyI zB^DKokr7HLn55fVX8do=QI1AB4B_V>8oL>31dj{@B~Zo_@jq?bDT|`%6plF@pl%MR zw9iQ-kaH28uh15=EQ2$L-2!UBdnoAxkVd%TOvatLY23uexLnRo|5Dh{nIep2B3uRt)X8g3-Kr=5$iD>V1ekcq zqH}XSeLHe$9Ksu6a=cX}MeT=i$}(ADuHt5F13o3~|5d{)Hd z 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 diff --git a/cinelerra-5.1/plugins/theme_blond_cv/hscroll2.xcf.bz2 b/cinelerra-5.1/plugins/theme_blond_cv/hscroll2.xcf.bz2 deleted file mode 100644 index fd5484045f3303c80b6521380a21f5e14726217e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6283 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 QZ2$lO07*qoM6N<$f|dNRuK)l5 diff --git a/cinelerra-5.1/plugins/theme_blond_cv/mask_all_smooth.png b/cinelerra-5.1/plugins/theme_blond_cv/mask_all_smooth.png deleted file mode 100644 index 49fa6d1fd0db4240d9aae328019ec61919ac74fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 699 zcmV;s0!00ZP)Yajl?2|jZri`Ms#=Iu`!rUX4XZq z^Hz^{@A)|Q^4Ls| zW7%xs14#iu9F?9zW)HwGBK!0C!sAqMXP=zi-OEb`at992!p-Qj*HYY+WFQWMDXV53 z%(is|Yjbt}S7tgf@4g=NXR2;SOQO}AGOk?!DoIe_=Zt^7(-QVyEsWkeHhs#m@g$co zw39SRLaNpS@P1NmonrvV&fr8_Yt$|Q4M^V|Q%n$$&x)+DR4%F}! z#HeWdUVhtnBUmb!GD9MJ0n&mQg^jLUu2^o=a@tBwm@x@dDPj3{&_+?`ShV^nGXhu; h+22Um?85&a_yGVp>Lo7(!#^9VK%N)~b!E9D?a#B&2 z1;!{KFN0G`+}zx8dHIp6t8a)1WmzzvS7e#T7(+@BLSVP+xW4|*{r#53qGmp?@ZLQK z$C&u? z@fSBYE6&f)I6Xb4C`PCXApD$0Rj^j^-V#D2#>jTtvRvMCa#CTf8Nl0Z!{y~imdiWN z&(C=OevWf?4}ETflfjvY0SqF-Zr8KfG?Zn5O(}7G{hh0;+kN=QhtOYRkH?HroHKM? zPuB%(+je~VbPd2_QIqGRUn>1CODUnMs0zDXhi*0vtJRw6v|uvH-voUGr<8Ec5kf>a zn+LkCqbv)&xBT3TziTljtTm`AcDD=Z25XfV z1@+!NnV7eli0nt+4Mi*pPo8^12nVlk1&>A!?=2}sv?y|_s@RWc0!wqKwBGRW+vXdqhB0mAWpOOmad9#Q1xvMFj61bzS1Uqiwq(#{lDT z&bxOfI5#Yn*M_gEj7FZbvzpngVzX%oAs`~d5>gfFdP?6%*6Z!Q!g`pdmsDD-6h%f| zm&|4r+ilCkLyIxPARN}FwT9Ev3g?ujX|dL#I>2Kb91KM=c<-1@a*mG1c<;Es-_kTK zs(Nt#7{yw}xuKcv0000;)O{ zIRNI-S%9PzC5kQe4wy5A>aOa7eEasN@kW_}h$5nwXQLFutRMoaZ`}m{`h^I9pz86y zrm8Abl~RnHGcjgjOyrzMDWhsQCzpHw16+zSo6TsNDXL1>4TLZ-43V4*W_If)XXyKk z_d;DO&dGlRi#V3cC9_#W2t94P<834u=6VSgj^684J_tjM;2T+aCG;eakS!Hvq3?T#rQ{ z=fZY-LKPN^8Z`q|Pt!~ZVPLb_{{rYM?jks+3`3-C&!kjPfU26{oYJ-jLg?QGdS&dK zqN?n6XHKUc6>(IRr|Skzr;bv}yFjm{DpZxH?-RRShmImBAq>Qr-p%$UYws1a!ftmS zXKYp&hIq5o$AAS9!3@sl0dHocRLHpi9|yix&LfrwNGW4xn90xXy;){ZiVjp0}rq<|=aZTTAj8g2jT$4$~ z{rv(Rx5kJu|08IAwaiA1w%a|2L*U_I$$UN;N8!DoYNV822>Elst5`pN{KeDLhV{DP z@$rGG($N*FFr7MLO!R#wXTv$Ytf}0>e;kutvbfN71KaJMr>70mY0cNKzcZUn0C`R~ z=f+ej#c10=2py_QRe8L3H^-DRs((BNHk&=iV_>yv`10isK7CqV4Dc%Gy;s)jJ5+_; zE^s)U+3(Mol^e^H5?vQbDN)xIkB`6c`SSyd#RQQz{vZI(3G4NQrt!?@_2mPB5Qdw3 pR;z~9s^R{A!E$*=Rk?p@@Hc&Gp|yfn$9Dh#002ovPDHLkV1i#&bWi{Q diff --git a/cinelerra-5.1/plugins/theme_blond_cv/mask_button_up.png b/cinelerra-5.1/plugins/theme_blond_cv/mask_button_up.png deleted file mode 100644 index ac9b2bc9aaf88b4449ba4b55b4c2a053f1d67b6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9jgY+Cx)o|%_HSeHlEwBpKxz-D(|IS^xFiUEV*D`qL~8Aj`Y>KQy;{an^LB{Ts5 DUXUzk diff --git a/cinelerra-5.1/plugins/theme_blond_cv/mask_crv_linear.png b/cinelerra-5.1/plugins/theme_blond_cv/mask_crv_linear.png deleted file mode 100644 index 776f97790ebf3439d8a5c91c38bebd831967a1bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 462 zcmV;<0WtoGP)%aZ}i`ux01s zW|bPMViL9tzy|;#u;=e@m(`dmU{x|j=RbqV;1R$Gpbxiv@3}nI2Rv}V@VPo3fs5gAZq*ys;Wku?Frk9sfHYNgzc@Wt}P5sIl2@M zZ;Fb)n?{|5pyPGZ)b7pl6g|^isrG8Z;hnHOEAysoTaws&)ra+;xrtxlTpSEty${fl zl6fryXJlSLI2gK(XXoM|pR46Bq**s3It2`oW>)}q=7CAGt`eOnXv$wJuoLh>fT;^x zEt@*$pNLL?l}!7qvw;!?zTdc>hjcCua{hMt5GyTHpRxY8t^r2_rT_o{07*qoM6N<$ Ef>C+D9RL6T diff --git a/cinelerra-5.1/plugins/theme_blond_cv/mask_crv_smooth.png b/cinelerra-5.1/plugins/theme_blond_cv/mask_crv_smooth.png deleted file mode 100644 index 2670fdbf79b6c5160856c1732d4c71f16b57ecc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 633 zcmV-<0*3vGP)9Jl3u(&pUv-ooH}v0TwFT~$~7VHD99}U@N06F0p|p`9){(oslL^z z@89ZWXY_I$e>&J*Ge*xiqnDFJm$nUdR=-GWG}o_gt-j(+?fJH#aU4xMQ)`Lno&7wG zMq@NF`fINr0f6fD7${r>WPvRI><2Cuiz}ck22|BlXLD@a}W1D z;6a1PEM4^K)T>jobg@j2l!3fD1&{!M2(+5aJSpmlN==vE=X)E6Ae#_e0Jz9=Y?caB z1Z3I%XeFxrl)$AB$CtwVDaz3G#`K*NGmk%mT&vYy9bey#KAS!T_$80|=}u`?-K_b}!|S_d^|z%= zo6Y8s*GAL(`g{?q+Ia2N9rapQS0b}?VSFq0NG!sz0pR&RjTzP%MQ;M+7T;rsBEV(&2kFCiC8k8HSCb=9WVOh0Q2syFAHAT( U{R0H3F8}}l07*qoM6N<$f>}@ICjbBd diff --git a/cinelerra-5.1/plugins/theme_blond_cv/mask_pnt_smooth.png b/cinelerra-5.1/plugins/theme_blond_cv/mask_pnt_smooth.png deleted file mode 100644 index 7a8c72ecc16d3d798ce5bb2258e832dc56678153..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 546 zcmV+-0^R+IP)q$*K!=7 z-?9>Cp&NVke1Fwkh!zi-u^|LzO1ol>*_nzKXsE8G+Ya?uUKw?{uJdx?>%LqxO0NA1 zs&%^0D0yw$r?p;BDOvxhhU`-{0uPW0A7yAd!N0QWhI^%Sd9oV_oKGCT&~(E zX>2>&;+J`NxM(#>>TEV!6}oXv&C4hVNAY;)ogX+B>$w4N($L_Hga#8M3C4~ev@E#; z=42=^GYfzwD8hkYitsjpCz-k8Zwml0CN=n|#Ko^jkV5Ii z4}!XxHsa#GHy!lnj*GxzQy^b{~Z>a|8CY;Y5x@Be(874G}N!RT{&a=q#*&72^Z9~-_B z790bFZtm_S>~ZgLC2Xhz;1xWbRdup)Z>JiTwg7KfGflhoi_k3lejl%OpfG8>5{{yk zJ()HI*JQ=cG<=A<9Yly|MbYj3$@;ms!YmGZ8M_#dF#1SskG(I7d>3DK!89002ovPDHLkV1ier1783D diff --git a/cinelerra-5.1/plugins/theme_blond_cv/mask_prst_load.png b/cinelerra-5.1/plugins/theme_blond_cv/mask_prst_load.png deleted file mode 100644 index d02083f15fdad75cfec40ea1e8c069317e14ad58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T6dAc}; zSoFS~V$0WTz|$JPO7AX*rSrKPdA!nd4AVIhU%$}Xu}G`1?nuZ-wdlI4pDB@yertnb zjy&)*%1XAsm-?+-sb|vjOHP-+mIZO~pDdmlH`S$Own@HH-$84J^UlrXPIvD`)rAF0 zT4f}+mwwwiODk#Vhg)0xq+jp2dCft!@cQk}lQT?KOV~Wk+v(={=#u*no15orjdpyQ q7i`tD!{UdEp4!=!FNJ^k?`5phaE#t2pLqc2Y6eeNKbLh*2~7Z;oN{>p diff --git a/cinelerra-5.1/plugins/theme_blond_cv/mask_prst_ovl.png b/cinelerra-5.1/plugins/theme_blond_cv/mask_prst_ovl.png deleted file mode 100644 index 28bcce281e058010474c994a5cfde009dd4ae285..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 513 zcmV+c0{;DpP)Ffu1S3*S_Dpn%dq*;jxWEwQ=~x z+F#2BwpiO;u~*?&8-*H2{i9rC8-*7@T|Ax#L1R!943G>54d=N&a8ao>mj3Ney+avE z?xQ}Iv0#N3fHV5h+U`nG@%44@ne*J)eXV>Nlly;>razy!JJVKJSNJV(ile2T`IaPR z2oMDNlq`FNu%oaqumE(t(w{Bge-TX$21t@0RhP}bMLC$9XbKMDM9lnQ5G>nV<1zco z!CGdrU0@r`hNAZ$1hL>cD4&h4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TcdAc}; zSoFS~?8tXWLBRFD$=w~B*M>jn*~MI5<+koZP;et}hyzsMr zNgup_#OdBCkcG2SOswf>aP@j3C-)8cw&*ZQ*`zwKal+2HF~zexEY&=(Azu6{1- HoD!M<;1GAe diff --git a/cinelerra-5.1/plugins/theme_blond_cv/mask_prst_sqr.png b/cinelerra-5.1/plugins/theme_blond_cv/mask_prst_sqr.png deleted file mode 100644 index dd30da16edb9edd839c91d1ac93afa47ffab8c48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T?JzX3_ zEP9g@Bv=CubeyUD|Lt477mu(=SnKTLE}f1)7`PQ@cQW3n@iG?gm$J$Fu;L(dqQSLI lO_zfD8XMd6JQV-{ diff --git a/cinelerra-5.1/plugins/theme_blond_cv/mask_prst_tri.png b/cinelerra-5.1/plugins/theme_blond_cv/mask_prst_tri.png deleted file mode 100644 index cd1090b59911917e4bddacb3777d3326e2b1d4ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 492 zcmV-ioaVpuk{zP1(fga!k zuolNJaZHWI?XswG6P~bYnwjh2AhAw23cZD|hjB7PiyfzuMacmU&;VI-YSrAYi&6H% zmm;dgAf*SxVn2Rkr&i5j=q2D{B&OT#W@o~fd_YLzOWsVTuf`)5-33sUW7C{=r>16K z6)DA`jx2WT)jUELXsBqpyWjEOODHv9(XHP{UcJa-?a^{#S()eVen3qz@c8>96}$Dj zbzlXsJ@v}{^H!&M7E&*S-gw0-#!m3$IGLPz>7S=kb8l*J3V_H!>TkuaUD*I#25iss z&Ig46TCHXocvP4VGDC_L-3~xF8bteHcM-OVF{ie_S62f{oZ=ndLYD00004nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TYJY5_^ zEP9g@Bv=CubohVzd;2yo4-e1R7mxn`H!k7oToE=Q<-_mo+y75~W#yO{%2PbU!!+dp z<23^{Rf`R*%pkyRIjdvioCJx(JPyk_8E3iPTXFF4&4h?3Hz041WXl{TPPVo4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq!<_&c|2Vl zLo9lqPBHX5>>%KJUuEI>TOJ%O3l56vZfEdX_aM9Cav|#uCe?7qzy!hGi3~IE_A04Z zO;d^}ig|FPjCKF)i}ROXy#DUM{;AvDc9$1NUTZd+u+vn$RAWNthnuClA3c7XxxA$+ zyJ@@H>Z&EG77XSGL{2nxb_w4V-!Ubu&}e0KRO+5Z2RsAMeEY@Doxb?shrD-km$Rz3 zoLf`Ozg*}E7l)%t=*7U~mh99wYfm=*oo^IgSaiYUvTc{%1BFRU=N+^bgq{neSneXaMH{px&%h>FiW@rzr5fydzK>gTe~DWM4fhIydv diff --git a/cinelerra-5.1/plugins/theme_blond_cv/mask_pstn_nrm.png b/cinelerra-5.1/plugins/theme_blond_cv/mask_pstn_nrm.png deleted file mode 100644 index fcae63724f8b83d3646628413fc522089ff4a08e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1V2JY5_^ zEP9g@Bv=CubeyUD|Lt3S%Dx2~w3M0U9JW-Iv@T&N+3WK}%7x>?nS@D)1Y{p{Gyh^a xdZKU7#gInXo;M)}oAesqs0MYP4Qvo)V36w86Wh+iR1Gwl!PC{xWt~$(69CzkLSX;^ diff --git a/cinelerra-5.1/plugins/theme_blond_cv/mask_scale_chkd.png b/cinelerra-5.1/plugins/theme_blond_cv/mask_scale_chkd.png deleted file mode 100644 index 1b551e56e7a97620c5277fc98955483ee8010405..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 941 zcmV;e15*5nP)GK~y-6mDI^@+(r<9;lH|@<;l$pEjGXTPu z9!fTvx5ngJnGR4n5L1dlGGoA4o`&`PGmiz?Gd_n6nsa4(Z5(IepbCtq4ls%;Ln#b7 z)91|ik3?sl)gsXSP-E^k*kJT~;rJ4sj01-cYCJ-p5?#s+Ig?AFsDc@ynW_wot{nV2 zru%M$HL?#k=gRRVJe$-UPRD4@d|0ix?mGIE$f}sF%ON7D8L1RfiTFPYjluBKco%ut z=5%^(JRS!Qr(;Ttyl-1>x{e`diWy>tZfmgC0Z63~hk^RNQi~&gUt>XV0L@$DBngM3 z2F;oGZOdQFC0$CCO{80NleJy+L4-bM7Rwg7S`p4O0M4z9$+a=793E&_D{i`uSPEvw zt-ZL-rT2JX(GT?95>ws42_}Ov@@ zw{Lfm|B6}!Q)MyqAhEhmH z(MqAAH2LxvZu^2RGXVPGC3O{fS}00&Mh z=te?Ul$bMWwrl>oPy-e*@@_sSmBMT?g|i7db2yy}{gJ0LA(l)m1vT3Zz<;4#&Ropr zTrL*eYZ~s~o8g=XHY1&$dAh#?)_P*@DXIkL@Xmcai$!1qsu{}|xoBH{ySl=O@c8H< z&7%jD=iwu4L5L?6vTVR5y1plE@Fs-a4-|+wGam-twJjHIi-_>zn^TTnol<_Dz^8{0 zKz#18Qd7T~5b8p|S}^a|(Ql)TrLc^Vw(nV`#H6lydi;=+SC4Q%-ru30!3d-m6?lig z4BWe}@ZEx&<%;Fd)91V!^=Z@aP)K~y-6m6Xd;97hmEPiEEh(8G*IfXu^a;jk6qPxTM!bF{EG z4h%*}Oiw>6E4}C*9svlP%Z#qmS@+&7`TY40=YxYKl11x^-`1R z_grtc+%^rJ8QC3iC+|D}5CLE?W3ZlhlUaP(qy7~eJ z&SMfDTY>vDnFw7<)NM`pmY83R-)Lxr{f)AoM--^qmfNPGH^bfeai}1KfQqo~I{Klx z`=N#e%cRUz=_g&^3Kc*_C_-Q`W7{;u3nOemMTD6OBG3&3ZAzHGhI|YUs$_TSz9T0? z9O9(dnA4OzS-@7HRyxgkd{BBbhF#Qt0Nz16GcK!&>$+yYC|HzBR0A-rbbI2| zx5A>4yN4#I5>)SHnQq}gcBkokuBwW^zJ5hTIDYq@_@SgfLXDN%JDmsQ18RRO}s!$Vf*2lT%yt`EQf?O6tc@}Ghb6K&T}b={cD2M&=Lh6ZvpeV`FaqsIASkn&1!Wb`(6VV7n!cw^Y0@9cqTsk(@UC1k zJ64nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9jgY+Cx)o|%_HSeHlEwBpKxz-D(|IS^xFiUEV*D`qL~8Aj`Y>KQy;{an^LB{Ts5 DUXUzk diff --git a/cinelerra-5.1/plugins/theme_blond_cv/mask_scale_uphi.png b/cinelerra-5.1/plugins/theme_blond_cv/mask_scale_uphi.png deleted file mode 100644 index a3d9e1d7c3de68d6e079ea047bc04966a7e8d48e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 812 zcmV+{1JnG8P)Gkyzj~RN#%>C-L9XKaX1W^!FoM;u2`t+1@rlgraAKC$BtnLuK=%QT(?Ca zrObAFL=~3H3N-`Og4t|}_XFGQ{tuupw2R=J5<;YD&cv8efU=z6oYFK0yzk!yy()H2 zQB~UZ%<0slB95{w=(>T^sUzq7F6gyXg|aN@`$*e%=xBoC{Xhuu-D;n!E(*mg)3)ca z$7Y#f2)B{?7+4Sy%;0<;D9nr)Gbv@@0q z_mriMQ=tm8nInWq-zQQsoYTuQy{6c;O?JuROxF$Uc6%Nlx6Ec0-@g6Ld_Do>DczhK zQz>VoX*}L{s48VyP!#SqF*%R!ACI2xcF*zXS+8rpe*Mg+PpiuSya@WDP&S(>s?fH= z;c#ZZKVz0}Dr1avT_DCtRh2wE{Kc0q_bitaL|*xW05~UXHdE@lWU;7dThHO(@qV~X q&w5?6Uf0~+Em^Iml%@NR2fqPZ_oBcA4Hm5c0000dxkP?;>ei|AYC~U`;(j>_7&=4u$4-yih@#$vn%$ch<(9!Y#tk>GhQhnW&uM$0t zUo)#q|B@Z){{<@0R&By-%ei4iV9-V{Vl1r>xCVu5Jr`q81ZBHrUT{*Bc) o=S|W*))9g2`iq~=b#(kOA9*2D^sR=+SpWb407*qoM6N<$f?K+yv;Y7A diff --git a/cinelerra-5.1/plugins/theme_blond_cv/mask_scale_xdown.png b/cinelerra-5.1/plugins/theme_blond_cv/mask_scale_xdown.png deleted file mode 100644 index 7c729e6918a3ebb7246779dccbb223ee3733f7e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1081 zcmV-91jhS`P) z-ctGp%Kzbyls`ZNmAC-$Awf}u(uxac8nty>(vZY;h(C6{J2PC^SrL+yzIVIY^PF?u zopVO4u72h@LC$%yETi8~>GwyZ=@{=lVQ7fskV+*YiVR9ggb>H#ga5wp-ZL0vynMMw zr}G!RUZ3$eM=6O?3ataeP*bbLG@A*tvvrarMkxu1lfmA5c6RnzU*BMBYY!m=NfOg) z)d@p`QVQ?ETFZExv%UR_gM%UMc7s-{jxqW;*g4OO7rU&j{Z6<0H_c{3yWOBxi_khi z2vN4|oX1*6Q4|z~rQ6-dIY+yFwuG19y}f6ha8b z|jEX#TFWE+5XyFnDqoLcGY zahXp({`9p~I#+P>#x34ies}up2?B+bl3+Zx2q6hWgOrjein#XPM=V@i z2H1Eq-199;M{u)POIiYH?wi_gAhHhEW-O^Tz9|KGga1 zi?mwvbe{dji$5PBjnU)xW(DsZGL9qa^>{j>jx0;L_schY``sNzqalk6%coYj zxbQYFG+CBU1_hu}i8yy| z7Of{swq9oC?yF3iPjop0+f;zg`?N&W3597d1PlF0Z(oT zs8mA2(2(Z^&Uu`()9NA53-UZajF@_T{2%-SY;lR6h*8Fl00000NkvXXu0mjfi#Yb9 diff --git a/cinelerra-5.1/plugins/theme_blond_cv/mask_scale_xy.png b/cinelerra-5.1/plugins/theme_blond_cv/mask_scale_xy.png deleted file mode 100644 index 4464ab34ddd01babf2fbbae25b3e1bf3d800bf43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 714 zcmV;*0yX`KP)>QU)Zz-MKLM#?$N-(X zWUV@N>kM1M24mZ~zksn4p%Mc^tQ|pWouXEj7%Cj6s)7@h_;w&cwt=X7d$xOh-g(FO zy!YTgMv!FD3A~S>-wd+y+GL_>4!vDKjv(-IZjVU?Ck7waxy>&K@?SJHfscdk5UTfz!*cC zX7qYPE-$CFT6LPu8ouw{2V3jtbk5k`-Xo4LXfz^Ptvc0e8PC%QA!a38>oCTW=Q(+9 zh~p8~T3W3yX7Cw!Fc`7D{gz*T{*@$|5XW6k&pH^B0fM_SN(ov^d|v~SrRFlLtLrQ- zHrao-h1RM7Pp8-H?7SzAM@*+9Hh=sH0Aq9d{S&&~LrzYP7{q-5qA23=@*2y_U$XLe z9nUMW{Cod3lgSlPw19NZ(d!L4IXR=zh&US@&oWa|Qz?firO8b`*JOFKcMApR^^eFh zLzd;}B*{29=mF4b)rsRC#$+f}TsZplfmgd*bI{An3-;dbP%4#ZHdl)3Oimp4kW!GQ z8G16g=KOq2wOV0ep^S5eUhkMNT;QJ%d;IWyA8HnOu=&8I4AC(+ol9_yFGz`0LF}fP3(}(B0Qt2mwiwV68)IMV^CBQ-cta zAn=h=A_R0gACXD{@YkD{D5cqWzKOMk&Ku7+*?nC=0S-RC!&w73l#<2N+#aH6N237%LExjc#9D#&eQ)l?{9lA&6(}a+^AJMZJbAB}ib}<& zT=p@>;9TKHQS}i*N=Bpjo~G93_cX878sIES8+>1rrYX8oDO0Oem`)S&+@h3XWu;B2 z6!2t3U7<1T!?{gf=r7*9GgKhZ(p(QH2A=;)Lz%kh29>Pnk1j2>*%Lk(@OJtIk` z9Cy#j^Bf^SODU<>BZk8<#uO9MYOSJ__h6=X8*0pdvRGSVFx+D}93iDFydn(CtgI~3 z>%}ZBt}}Op;QX^c(_l$e>~H4z5SH-+Oyd?DHT$N7!xC7yJdc8`c@rd@? zli6Woa>kPpS636#G?`habA~j%W-=XN?s&*TxQLX64bJ99YsJ!1jYhq}{<~dz{SIem zU5v@F*5RC^RPsC!*FWOVT!r50ES8&t|wZvP^41F4kc?fxH3r`IG&hEjqc zD5JGPDT&q+&-3tojZ%_4w+x3Pj2Y4wpXNM!4qTK9VHgkuK3SGyt;1S_loID4%W|?T hyS;%Bh4FtL{{lj5{SLuoDjfg-002ovPDHLkV1gXl8*Kmp diff --git a/cinelerra-5.1/plugins/theme_blond_cv/mask_scale_y.png b/cinelerra-5.1/plugins/theme_blond_cv/mask_scale_y.png deleted file mode 100644 index c3879aa5c6a594d607f79e30dd273b3fa1551c9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 386 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1V4d%8G= zSoFS~V(53+LBMssc_I5mfk3BT2az9oAtyxz1n($LSLje?xX#HsOPHl{!_>0K*~bJm z4peb0V)(fF>bXDb*V|ij*NZJZwIf6_^0%<}<)WV#`0w3i)~kJ&5`FlutMu{6mgaKf z1cooQQtNc*ggp#O<=NvFP@L4MB6V~&2V3^iJ-U-tJbrN3vLMuP+pg?$)AvcAyA?A# zV8xYIuiUrhy!pa^xc~1d_#!K=72Lq}PUg();%Bp3Z{D<>lc#b==Y)*Jx~ZSm`S)%A z&L?O8*lqEPuYE;Xe)a{%ot?7+SKL`A_Qdn)u|tNu>nDc^Con!)>94mh`ID^I)QjPE czwWn-f6+}+-EL#k1q=!XPgg&ebxsLQ0PtvG+6{pIE4VIH&Oo%bULXIVQe!H`fJwy?kkXtp2d#n0%-+RuvBeu4_ zcYGqOb!1t_Xp}MUk(CxP9bYhIr^T5_R-n@Cw_Vx<~gTF|UCf#m}Mk7FL4)K9C1qJL7@T6QrQ5wygV(?(C#P(0@6qoMSzB9SdHD)qxPX)b5CnnG-Mim{ zll1#XoTp=q@u(_`wU)^wV=y?Q-H!1*g#?&PQg(KJV=y>nZEc0CS35+JUlSt)+}XU3 zzYya4KKJf@hY$iO1)ircMx(Vyo|lZr=Qsz_Imhww2ab;3U$lRvZv8T@Ut8zem+N)@ z#nl^iF2wXxN}{!*C@PAgL}ppR!ND;A-ENB@n6`h3>-#>No8QdI>CWbT0zaG~UP_6S zf;=yf<8jJxIHJ)ASzHV*X8JL1ZrrBVd(M-s$93(=)?<46yKHRSngMpsp|z%}EZ%s0 zPEiyjNfTqd87%_rK6^U%+SAh$cAuTh)va}So}w(l%kv5$B))HuQt}BC{fBTUC6N-m z%S0*le-LqQx*0rAVy!?Lqh}oRxgmtOu)Lm<7>0%*FjQ4l-}<@03kw=!Je;%0Fbs&} z@WP^&&%wUb@#11o?-S4WHJ#29uV42miV|aH&2jtdy8s-#`n9gbal-X$Ujb9q2qB3g zpE!;v%Mu|#N-1fznk+5`R8@twv#;Lk?Xtdpi-!*$)wPEY9=(`q#_ zMw4a5bjAQt6tKG5M(gQP`DdhQ%G0Mm%(egX_K)O6%EE$SWu--u#Ei!&RaH&*2!ND= zR;xjhETNRD8J_A|@W-2%ygK|iidTpG{CV_}W;0}UHKE;JVlv4%KhJ9C)@#%A6wAvo zT1&DluYsL&SnJr?{fTaO6@jGJ`-N^dVQDGC7|q$)gfz{NQr4Hx{6UnGBuUI@H~Z5l7oX?lu{(^2&E)tX&DYjRFy@DS=Y`0U+&&0^6`B`QIuHgu(m=<$-DmR j3&mWrD=ri;M*)8W&VqDI9y0ne00000NkvXXu0mjfQjGM_ diff --git a/cinelerra-5.1/plugins/theme_blond_cv/mwindow.xcf.bz2 b/cinelerra-5.1/plugins/theme_blond_cv/mwindow.xcf.bz2 deleted file mode 100644 index c31f380bf25ea420ad0c4e796cd6ebb18bb30765..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22706 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 Xn2{_XIPA-H|Ha&qP81|IsR&d+N((aV diff --git a/cinelerra-5.1/plugins/theme_blond_cv/mwindow2.xcf.bz2 b/cinelerra-5.1/plugins/theme_blond_cv/mwindow2.xcf.bz2 deleted file mode 100644 index 57df42fec2b995effdb33cec12243a84508f1654..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20535 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 YX}#X^I)a-t_h0`Paz!{$kTbubsoX-%NB{r; diff --git a/cinelerra-5.1/plugins/theme_blond_cv/preferencesbutton.xcf.bz2 b/cinelerra-5.1/plugins/theme_blond_cv/preferencesbutton.xcf.bz2 deleted file mode 100644 index a753b0eded56a64b261d5258a460c27c9e29786d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4378 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 UDp3-cCNKXNaz!{$kXXoxZ=*~8u>b%7 diff --git a/cinelerra-5.1/plugins/theme_blond_cv/recordgui.xcf.bz2 b/cinelerra-5.1/plugins/theme_blond_cv/recordgui.xcf.bz2 deleted file mode 100644 index abc079c2e4f6fb38ea57dfc0f980899d58f93525..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65455 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 diff --git a/cinelerra-5.1/plugins/theme_blond_cv/recordmonitor.xcf.bz2 b/cinelerra-5.1/plugins/theme_blond_cv/recordmonitor.xcf.bz2 deleted file mode 100644 index 87ef7b89e89a5a9b2ea3eb4028cb7fc1c4221b2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18474 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 W*y#|HO1cSu@pmLsg$WNDCz#OCpL^*5 diff --git a/cinelerra-5.1/plugins/theme_blond_cv/slider_bg.xcf.bz2 b/cinelerra-5.1/plugins/theme_blond_cv/slider_bg.xcf.bz2 deleted file mode 100644 index d32be1393b6c796386f38873f2e05aecf3ea7764..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 542 zcmV+(0^$8aT4*^jL0KkKS>nk6QUC#ifBpUb?+?HNn6!Q8L;&ya-r$4)#1KG0fq*~& zKrjH`zyZ#3Vz5b3G}BCoeyOww(U1TKsh|OgrkZJ>(;9)GaiO4S(<4n9WCkV(00w~2 z8e|3p$Qx2>8boLS8UO$QGynhrpaHc4NfAwx6g@y04H{?w27^XG000J!4(nX8VCS1^ z^s)(}C^S11UUpuFT%*=>kv^assMLm%3MC^Hq*Ep`W-2UlVnryypj1DMtKiY7lf17Z zeP=|$AjvejcB6!b7bG2QByg~U8H5tBQhVeD0K*~K6%fKmRp8_YGe;nLm7U-riBWN-v5@a2a`=MGTESK3>YwD z1jG-Dm_iZKi(h|&;ZVpzKcY=^vs+6tdzWb5kps7M?_>14iIujH_8p%NY*FCD49iy@ z!xkdHL-_Kqwnq&2XG$E73bg9fnKkMIlo4StRd8Em%=qn^g<=4L z3_@_04uHUIzs diff --git a/cinelerra-5.1/plugins/theme_blond_cv/slider_button.xcf.bz2 b/cinelerra-5.1/plugins/theme_blond_cv/slider_button.xcf.bz2 deleted file mode 100644 index 1dce41f0c68019dc9ff5badb44587bd6e98efe80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2116 zcmZ{ddpOe#8^?btq-Zg`tdxp*@E|kCkcyQt$_gVgF>_AJ!^9-h972v6iaEw=IgUws zvoU9xVZa2e8*nBx?5@-**_m z;{oyCSweibd$$=T0l+-~5BOd)JRlDMeY-wHgaQ{T&jUq+#h1^D-v~orvy8b7gVr2`C=+yXC23R?jsVUh+wibhj9=(oZ z@iR=WY8CI(t2%!y&tP%FtoZO3Bn5g`<>|dJGv;GC7FDY2HTO|}OuPMv8hJPl24y6& zDIY?_b!(~NHIp8+GKP_r%)n(jRyS6P>C>@jm8-{@6y524Mz(`|_Jv!!4!E*HW!g+*#~>oOG#pTq+U?X8(Bl#X3VQP0dSLhFVq*P1ujp?7DvajKzKv zy1QjuL*?x|-D@5$E9xuoa0-Wv36FTrRk5kv@8m`s@Y0|!>L09ZpHY29YEWFC5krE- zuu3uNs-1}L^C#>C8B>Ji!JAo`>@-$t5yJjmhl-9%5xWMd!;r7w#r$%A<)LBmAlma! zfz0_CEXq#FaA}mpS`b`q8hTibmGw^jS#q(FP_?%9E?iV!Y`OB5Y&>So6y^+Yce&;*DFYfPj!jvTXqzjjU(1-UG&4mek zZHpKTeh+DVD4?(-@NSTim3XyAb+Ed;Tp;AoIwo4S-fi)fHH&Q{{JX{r<)kG`gq&f=T9y?dWbBu!bOzJsP1{IsSY&RLVrJ{Gh# zQByDBLB5r}W9~3v(RL)#$Y7Yz={M%kuNr2MrcqZPP+fmkgM^LxSozhNCpkSqCwenO zja*Gfx$I!499N1>%d72JiSgEh@lt%RWx+C{6k8Rh+d!~AlN{UFHe>Xng`PMYzEaSQ zujiRCE^W8nnh7qH|19|NbA|oUSR6-G`UKA*CM_2la%K_FhK%(J9MHP=TW{HSXF8DQ z9TwHM4;@r&n2j-zK1TtY7y;6#0-Eq?gz%O8%(_@>gm)kCh_YC`15M_pSGy2H(R*kH#$}IpuC8!^$cdHR=S4)A@WA+;N)MU2BHeF|NsO6B{AP73` zA)yFIvicY8S{5lXBgu;$_2CzX^(PAInhTt75udt&0lfP3*pna^;=>lDjUq^Tdb+GEe%@mW^ya>-@kYl z%Z4{|kG6cN&Eu~%`)gh4T0Qoxkax!vF^8-wZ$|YHr-vNuv4bne3J<1#vma0WZndo6 z+wO>MbR-5fvvqp~#Nn!~$O`_^L+zUy`i7&S^kI`M&*kb~mo=A+*>&f1dc@qg@6(nK zUTjw`HJpT7u!&o0-k4|;W<|^nwA>u6@XJoqyxlpjUcm*;S4v6>IH}4~=ag*0=H~C= zsKYNQP;>qt%BP!+!EDqgq*tC5^&L8;F4ZSZ#nPyAkjSi}DAABUJ*l1tuFY9uR5EBowHJ@xY# mB}k^I7FJ?o+w0ndsspRn;QUUzz1W#rxm0>UN*c96j`|x;BnJBc diff --git a/cinelerra-5.1/plugins/theme_blond_cv/statusbar_cancel.xcf.bz2 b/cinelerra-5.1/plugins/theme_blond_cv/statusbar_cancel.xcf.bz2 deleted file mode 100644 index 66924dd463cc7b2de3f2e6beb770597217224605..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3409 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 diff --git a/cinelerra-5.1/plugins/theme_blond_cv/tumbler.xcf.bz2 b/cinelerra-5.1/plugins/theme_blond_cv/tumbler.xcf.bz2 deleted file mode 100644 index d6cfb71f17e7ae780a8c6972aad72f8904d83b33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6898 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 diff --git a/cinelerra-5.1/plugins/theme_blond_cv/unclear_up.png b/cinelerra-5.1/plugins/theme_blond_cv/unclear_up.png deleted file mode 100644 index ac9b2bc9aaf88b4449ba4b55b4c2a053f1d67b6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9jgY+Cx)o|%_HSeHlEwBpKxz-D(|IS^xFiUEV*D`qL~8Aj`Y>KQy;{an^LB{Ts5 DUXUzk diff --git a/cinelerra-5.1/plugins/theme_blond_cv/vscrollbar.xcf.bz2 b/cinelerra-5.1/plugins/theme_blond_cv/vscrollbar.xcf.bz2 deleted file mode 100644 index 61d922f27c35e22084fa1782e085b7f1e5506ee7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8596 zcmV;FA#2`3T4*^jL0KkKSq3q#3IHD8|NsC0|NsC0|NsC0|NsC0|NsC0|NsC0|NsC0 z|NsC0|Nr107rkqrZ$hoLRY5>#M=RdFd)+-b*!1_e*1fio_q*-7@$IsD@3pmP%InW! zp2Ywwk*?O-z#VsB0Qv)__F{t@QJ?^#f>ekmOd!Ebz@d{yhoDE4(Sn;MnWQqFRPfMh zp2*UhWYqElLV9Q@@|lV0l|4^n)jvRF(w~xgjHA&uX_T6NlzB2uniB+`QTnIpL&|Bi znh#A)8Z;85AdR6lHVHPWel%)$nrWe_vYw29Lr*E_YBEpKX`*Ur`cFchr-*Gd^(Lq4 zjgkjXh5kKT3LrpOqOg7}RNqJrim@K+_}C^*u(^X!MMY0Mb%r zKU8@#P3oSL%50Amo>NATDVjhUXnKIiWB>+3L7JYSpfLapKmce4APo%w0BN9P14AGH zGyrI6p`ZaGD3j1idN!%2r9ViX)R^@ipfu3hr=ukF(KdrdrqQU=Pauo|Fw!$XG-w8+ zdW2;3Ow_EyJrfYq1Zk$4Xwyv@41md?GyrJG$N`|x05l4ukeX;{ z(<4DW6DCYXO&Eyi?k=MgkQ%tmt(1lxw z0dfo<*^48M;@ap=>MJj)A-FvK9RGXD`<*cD`L)r)Yz(y!2o#2J?ZcirabpFH77f9U zF`{8)@LTD>eIV0&mS+>2qd|U17PW)tyuD_2e?CkMiB;iJ{59^5xyH5oFUC#x6 z{%3LA?)_;Y1v)txI;qLn{YQJh0}ZAY9vY;?0uUr15Q4Dn-Pv`Ux5*mW!|-Q}W!W>D zJww#9$OwW>2mnnZ+&WjAdvABU$ZFN^V?+4~qMzX|jT@PFPs#L%G^jBM+ zTjP2;KXruka4oMD=7=-ioti*N5D3+S^MH{GH82kP2m~+y4#kms3KA6pkq|8IVBSo= zYXgGJ9R@I?uF&8Z7eI1tYvVl{CkpJ|4Vd;$BkS0CAk$amc;h3}7@eOaP}ps}qlM(O zTc^i*BjQ>)e5;vuR08L7-5RYZCFmsp(C7UES_a=SO zgNev8Enj=L)%udex?!R1zL>@&cjgG%i9rwur^$lLqLa`=@UOa zeYaN8(dJQA6YVW=U?^5BE0t+N((5WJRhC?5Bhl?d%uUh9Y`M(F%U_&r*9wpwYbL0` z?SzJla9PemKXJ@m=_nV<*K1^*n4%0WLnrx6r`|kcSFgaDgbL_py>b*2kB^?4&`3gr zh>nSM<*_H=r5U)Xp&w-?CVa^12oO^eIm_mvxkFQ_B!a1%L9&^kH=;v93vG!YysZfr z<1941Ovcn@>BD?0VW|Lumx~%$p{vC}E~Wqz{}6)6fD%v(T?x8|a|kOILD-9GIJn8< z)dq}ii%QDBO+c6=C`>{HrU4UCQ*w2RMA@?)iLvwcOj#M%%uDYJW>j%(s8WYs<^-f| zNf6l>?9IX}s_Rg#UaJcXnrVYnut~bkbTxsjHJiib0|4hRA%TT!Mw24oR<5fgqz11q z3DmFu_b1QgD+2j8?tgXI{_#~5TVgfKN&9m$hG3=AX2cDM>9w{?C2Lhij16>w>c5;G%77SJ@c zc3=`3oZgqZX~#wka52DT7~tZKu!af*4vrAjj0p2EG$G9!PU8WuDI0d;L!xv>27y#A zkWz{lVrZ%rU?!@Bpt=r)2xcN&QHCA^v+57SK*Ur?Ay2;?&H_&RdnoS8FPHD3GWy>F z_+kTbhN5JAIW!>%9~X_{iMV1aMX?nvh^hAO6n+dp%H0d6ka;E`<${3TL>>fvnIL&T zr)_!&U3YsZVQ&asLPmg#pe4{tjMfTSwzT7Zq2Z7$c&r7>?|2G4JSVDTWP%5p9nYNNNY0@k<&`GQ_*n>}lTf2==k6feVAJ`_pj765ya7vezL( zT{%;eNdTS5QbBBqL?fBddDtC0$a>2~8CtR&gycvf5=5kqZ}>J<-e=qE)s>MXeNI)q z>nY579&_X_)rSgJ#^z9s-+7JQZNCE_uzPAs2@Uhn?E35PZ1z7XTT{5Wbln#ep;^W5 z)@YdsSKE%V=#sY+g*fLOnl>=#xR<{t84ualjTYk)>sV|1J6zc%Z`4|$D5A=n2mN); z$vSV3vdwV(kR%2r;f2m57CA_EV^R}Qt9p;@&Cal*`7RXPwq(&-R_%&!XLgzPJr4J| z@t*f(n$S{Flx<}5(uaLgy)q>7LXr@^I%D#C+#`<;iEkiF$XDOJva;}LERcSF)k0KK znW~S*c;AVTw8ey)4Rr$hnKQMJg_fOhw*$RN8quBtP4t3iA_{fKAD#)%9)45hGg^+9 zy{O;jCCgq5|1Toen*YezeapPz=@*+$;Qrwyt02zlL}i}}3iI>{P9+yzYP78)?z=aK z&{SC|@o<)mGElt=?b9jyiUH3ZQ7#C8MK)Tm3bG(q6?8-a)Iul_yx8?gqVnYBW~=0! zn#DY=5kW%dNBHVPpGl%xH>*ou zu9~t&@RAha6~&#Fy~2&|!D$37Ohem^LGViJq7b+G_zp98 z3xi>GBx|fImFma7XolktKznef);}osqudvpThj-{YIDWCixLd)GZ=D#h>(}+VWkw| z9|4jlrt{$$6Kd~?Ftnr^uO4s`83V4QYk*yUglQIlkIN!159#KDH%4VIh!6)a;y!+%zlE7d zKm^(6Fb-u5TJkP9^Txv--8 z+<(UUYjXA4+d8Ka{11}tS^urj?z188*AE7y71uM++EvX|<+vrp z_C5i^iogBiEK?#EWLM%0VZ%j1zW=6Wc!fw_aWrF=*?FC5Nz&)dr!iPW(4IZ9U8(Ex zk1}Tfh<4pFEQ@iEVqo2{Aj54O#e9hJ*MLVS$h+j<#3CwWmQ5=rZr{GX`CLI#ig}sN z=$uK>*yb=17*!Q?Q0Sjnr!RSkuE*PB=6f& z_sY`5_)c);e-{RwhSCz{f3aEu0fIsV2uULHW9%;fTjx_dZOlyf zUayOiucE~IFRJis&74KmV+T8keFm^@5NA?IhUe(b7$1VWD&^`uqwRX>nn#xSPA8?z z^gX8ilg9ewA|85L2celEHxxGBlY8T|5Id_?)x!8d0B*xcn_ zZcjY!dh+UJyXKK_(pDLOCW`S10?`?}Zo%cZZ?w62Z_@1_Y_e?VHa(@p5c+aLE}tPs zqO<0nYJxJjz6INhtm9qiV(@)-l=|y*LmaLrL&w>)jDZhU&4`?Ia)gdk3d$do1>DhS zdeG8jGF2HHZ>W^UpL-jzjn(w$@*NU=l4L%Y1;xjs^=pf=r!>QW)AO2?%kwav|0jqd z1k$Kl8S>|uwHs5=WjcGyp+MClWJZaX_aoVqc?eHzmNXoVIRMEy7w|T8kZrP%)*p`6 ztkF6pjc>AE&aPra<@t-c`a8FWUJklnTR&gDBKg^4(l%#Q@Sn)DK>fxOzq)13=1}qF ztW~n9`bCh2gw{VcNw2VE!Kph!&4mFxGZBfx8(Bv|?~mY1EQVQdMkXB>9cD*u zP~V1xAa!t}F$Zg`;AR38K#0T?dEa%b_&mppqW2efVg4y*Y|G>xjP+SPg9n$Fe?j=H zP5vs@cH}Mv8)t-ceSK5FrFXdP~{} zK!gb;%t;dy97*@fe^AL7vzwBnTY{G@!zn4ZeS25czN8S5u{EC~1Py8N6pWK~j*kw; zmB}Vh;ZR8!0APU;0w9t}iJ-jYB~VnmX|JI+ZyZwA!RK65#Vk-oe7jkAc0yFzolQm* zY4ONp{(k7!S!>Ka?_+{~jgi)ZL{qgPK}aC;8w2s@oaw8|y{_=(cQ=f!EB`C1(`l+z z;a-uMd^HsfM}e!FY{{B;y7~%s(Nd4nx9N8U)Nmc}<99B)mRdjEv5#??lAMW&Pv7Z_ zzp398^lwC>3{v$q-Okm2K~l@Td~c2mK&Nli*-G& zefxAE0m@Kn=Cof1Jt47Q`;AG!y!grQJD}DWOkX+h8LY8PZM16_fxp~Jw`Y5r>K+?c zZ{D|3P1}n3bLml3=!-6&rndexI(GSWMXDe`6BdxK8W6ZEQ=PuUnI0O=dm4+$+!WGw zSiJk1-&YN%%)xK3R?^d^)-$npLE2+8e;0~irrU_6CY@E3RVm`Tq-j?*oVLJ~dCe$q zBwAJbs~F!brFCIk%_Nc-z0zGqQo(c~eiU8oqth;q8bef)OiCfQl_p3br^t{)Z6pLR z5JPS^w*%8~bTX1Dm1S~%LD(5postiXPInq?xBG85 z?NmXN#X)C%A)PHbnIvvC}4jyOr=NBnjYOF0OuDa92Vr8`9{wUJ>LcC zKbLy)8N2CnSh>AxXFm&(>=rYv>sFh1ltdrLBqL39KnJ>&*HnwY=*aQoR-Py z3kBZ`szLLPd9VB=X?_V>&TGs9J{M0DTc(6kQys-*9Y+kDknO`nAp?OZgmzu$Ev@ms z^Y^RA5ooH~KC85T+wrpeEIwn;hzx$Mz@)yWDy$V3QNHl<4=C0et??`U>PWc4cgOtX zag8jT>CZ{DrVP^*$Nj%!zM&vf+tI+)v@F&NV3_+7ELBsL-HHeRr&b*`Cab-lIx79X z(dMDIG2O4uxraKb`s0w!*ZbAC)99g&7LdjUN^s9B!Ts;BU3TPa4e5xkb?yGoL`!fSq)M=JNy z$R3)+AP|GVAt(06M5B*(2mw?eS2*4*|EBv5P{z~ONVhCakwX>RF+w8oJW?krYNCy(r!Br#MA(># znHek$Os6@{V^&#-?w{%&`^y}qHdKNTAqIjZGU|%-EIJalnq6bKQ&UxE-!Lp80=(U_ zdt;TI+j09$S2-ugN#D6nTRnBbGn)s`nGDS-Buzv~wkZ@`VqQJ^%M)%HD?@P!Bs%bbwQxay5NW7@SZU_KVR(n(3d!?rw z%eUH65t=-8lSNC4K;4V{b6R|wBk(-Noaz-?r#7qBsP?&7m%RQrj=y?+{lbgtzRJXV zT!%5ZU%rB_-H+Pq+H9MbHxIqOzxC;IoCjw34^`nZmo1z696pVqK~Hw6RM$1pMS8q^ zxiQz8uiBu>edV53jV*Hdj_p4?z>-Rfqujb0q)k)) zt}%^yT4xrgoN2r^W30ZG)!T2}*C!8^ugdNc$M1d$jwXhgyGaljdKqiujK&>|39CGgRuM1?-%*5dnsgp4uoicvhNLYbFS7We|+W-Z@(3O~*&CfWC1pgPeLcHQWv<;LIfnF}{l9$Xa?z)GtoAy>)jhY zx^|5d@-m((bHsaf((&f6UCSZ6e8=H>tT(kx$XdE5{;ZO8FHL6Z-0d3i z;423nD!bLR{ z%@RqIBut5tNcm)wf&hcEAP^vfhZzEbNIb!m48S^4k$`6kNDxTExj|Ti`5PP$O#vk& z1jz>~4=HY$IU>xNK{*rD6Fj5!TZ^THu(#}NS7+I`PO;lOWutuCz7ilfZOfB#*(Vwk zG|w_;$W>581m|VWReQE#iD_n&*;ZTEUql4u1$PPfn&$pbZ zy{69?;hc#EIw23F;uFGVbY_-(R!5j+qj5>Qa@%x9%J$->6^qFc=@A0hs(3EpiI7ep z)a4LKcPF+p=n(8SODZjTa8F@l+?2Uu%ckY2B4p*n$O1$`w2w5ann~nLc`rO=fOrGa ziU~BWIL;W)F{&~#6-a(@Nu1$*JLHboo_s(%N7g1&ns^IJA?dvo6b3YSJUXq>|BV3S zZa^hTMg$=kTSv=fLOm3hAN#hZBNe4AgRDe886c}82Y4zsJz`M+uPIk`Tuox}vT#dQ zA4!7Eb_}g13s%TpDX-eve<|fRZ5v9!X_YYi2Az+ijUuZ^lL5!;mEKzup<%2s?zZh~ zAlOMkBtTGAw0H`sD{C&4)D{;R87?s-_o(`cDp>6kr?F!J*8av`qie8Jy%z4SlY;pJb%71bIH7o5ssHVY>auw1PZ-BSTF)w5qX zy;G2~QZv#-1r`!{xl>ZIXw#kRhVvYiB?as3E4dHte){c2@zb2^u}q-t-ZE^9cfMd> zY`82}bm`G#vWVzfA6(gSvd;0-{QE>^dx# zJz`*K#${RA@v|2dw?<-ki4{WUNCQFf1Z7m3Ww?==2W?kv~uyNXmVC7STm-wD9yoR&I@u8-S0bk&g%a@>T(Bi%Sob>y)eFH89mt#VUL zj@6FEWib%}@b;PwUXjXoE$eHJ5BZ%R+YU?O~(pYjL2#1#9WiFaF0=x5BOkOJ~s(XJA z-Y#JSDzks2-@H`j)mh@YmsAkhv=b1G)2MJ)YwWc;tW8(jLYi*pS-Gbh}Z&Rz(_*Z7m`5e){^Uz*8 z%#$$2D~bVK5l=}7ie-R_?pG1)84rq+dBHGp0EsU-|8SrsiZHpBrU+AqK3&)o2 z>*_4o^4lb}ZWpS3bH{64+a-$0Ww2difbe<`GLu}nS9QuxveeI6>lIt(8#&2voyz&R zXqe1b5#igaZ7&^FW?CRRmC%9qo^oYplTtU2i=}4r7R(36Xfd6xWOh-niAICpPoAdI zCTbS$afiudsx#QC>~?Ff{`NX9F0-B@s;6M~Yjvz}7IAwRdke-HxLGt6QE<>$XJ@iG8LI>t9CPf%WS-tjP=u_q4qHi(Xw`^Q9ycI!P42$kd8$8 zK4uJ1(m1#$OsPIr6VVPCaHF<+l|~af{ha7u?$(Q^La6U#hf8viB2q&wBy33}jI^4R z<}~J|fa+c%yMKn%R*II&mdVZ7W?I~3NEB_-DvlAUF6P%VOUEo%IuhuYUP!oqNx-d- zr5XVRK+9}`7}*dZ1Q%l=iXcpyV1r2_={+(?h!QmEnCT}r$(t!AR%()UimOIaO%f+} ziqY=*jCJlxxp|DjPQF(d$B>)Zietd&jAJCx5o3TfX0XPz=nPDTj-Mwbag`K>+O#SH^^6 zA$uUUNQ-r{WGAa$<1vv5n2co0Lx?PHbIxBf#$2wHSO$rtN1VQHRpP5;>9NSL*>j+B z(5lsNhe*t1!0;?cpm2smr8kR7$k}NeM?BCOTX=whLKm262X#93pzRoBh0&yDgxFD# zFvC@-%~b%jg2Rkg05%DO7{w(dsV>JQgC1&Saa1T_h8~rHs^k(^T0$VEtcHdM)DX#s zD1ofN?}c`3-VnSsLA=~T6;US5lQtM(2{K`j*HV1SUq zj0`F%*D_(W!wsfG43!lmFwoGz!$UM7#(MX#8z`bV4iN_M!6ATPU|WeL8I1YC*6%q6WdEGj5ezO=lU9=i4)gGYU}Cl#HGj!@sXH zfdam=TL=VFAig!*;{$oF&AdCqP#+_hDH>ne%y!58Fv&z|fFOidO6`pUkUjv=($d3K z3R)ip@ZSCH*)wL%&|HYPH=6EqP}(1mv^#rP)bfGR9q{twyAAfR#pQQHJ5UqeTwnJbz=_bNcJoE8z%OU~q;V)!f}sIqVHSWva_U z-rGl4!PJ!zWr$z|E1V^CB<8eG6&NT1sKC@CKb|aoS aBfp#xuPT?C!X_fW{9VZu;X*(d#<(bbqfZ3@ diff --git a/cinelerra-5.1/plugins/theme_blond_cv/vwindow.xcf.bz2 b/cinelerra-5.1/plugins/theme_blond_cv/vwindow.xcf.bz2 deleted file mode 100644 index 7d755fda0e227d9bf550f9527afa474bc06ef319..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35531 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 FzChVOiV^?- diff --git a/cinelerra-5.1/plugins/theme_blue/bluetheme.C b/cinelerra-5.1/plugins/theme_blue/bluetheme.C index e58dc152..309b0e06 100644 --- a/cinelerra-5.1/plugins/theme_blue/bluetheme.C +++ b/cinelerra-5.1/plugins/theme_blue/bluetheme.C @@ -46,19 +46,11 @@ #include "vwindowgui.h" - - PluginClient* new_plugin(PluginServer *server) { return new BlueDotThemeMain(server); } - - - - - - BlueDotThemeMain::BlueDotThemeMain(PluginServer *server) : PluginTClient(server) { @@ -79,12 +71,6 @@ Theme* BlueDotThemeMain::new_theme() } - - - - - - BlueDotTheme::BlueDotTheme() : Theme() { @@ -124,7 +110,7 @@ void BlueDotTheme::initialize() resources->popup_title_text = 0xeeeeff; resources->menu_item_text = 0xeeeeff; resources->menu_highlighted_fontcolor = WHITE; - resources->generic_button_margin = 30; + resources->generic_button_margin = xS(30); resources->pot_needle_color = resources->text_default; resources->pot_offset = 1; resources->progress_text = resources->text_default; @@ -135,13 +121,13 @@ void BlueDotTheme::initialize() resources->menu_down = 0x4b4b4b; resources->menu_up = 0x4b4b4b; resources->menu_shadow = 0x202020; - resources->popupmenu_margin = 15; - resources->popupmenu_triangle_margin = 15; + resources->popupmenu_margin = xS(15); + resources->popupmenu_triangle_margin = xS(15); resources->listbox_title_color = 0xeeeeff; - resources->listbox_title_margin = 20; - resources->listbox_title_hotspot = 20; + resources->listbox_title_margin = xS(20); + resources->listbox_title_hotspot = xS(20); resources->listbox_border1 = 0x1a1a1a; resources->listbox_border2 = 0x1a1447; resources->listbox_border3 = 0x1a1447; @@ -151,7 +137,7 @@ void BlueDotTheme::initialize() resources->listbox_bg = 0; resources->listbox_text = 0xeeeeff; - resources->filebox_margin = 130; + resources->filebox_margin = yS(130); resources->file_color = 0xeeeeff; resources->directory_color = 0xa0a0ff; @@ -394,7 +380,7 @@ void BlueDotTheme::initialize() resources->bar_data = new_image("bar", "bar.png"); resources->check = new_image("check", "check.png"); - resources->min_menu_w = 96; + resources->min_menu_w = xS(96); resources->menu_popup_bg = new_image("menu_popup_bg.png"); resources->menu_item_bg = new_image_set(3, "menuitem_up.png", @@ -526,7 +512,7 @@ void BlueDotTheme::initialize() "vscroll_right_up.png", "vscroll_right_hi.png", "vscroll_right_dn.png"); - resources->scroll_minhandle = 20; + resources->scroll_minhandle = xS(20); new_button("prevtip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "prev_tip"); @@ -544,17 +530,17 @@ void BlueDotTheme::initialize() preferences_category_overlap = 0; preferencescategory_x = 0; - preferencescategory_y = 5; - preferencestitle_x = 5; - preferencestitle_y = 10; - preferencesoptions_x = 5; + preferencescategory_y = yS(5); + preferencestitle_x = xS(5); + preferencestitle_y = yS(10); + preferencesoptions_x = xS(5); preferencesoptions_y = 0; // MWindow message_normal = resources->text_default; audio_color = GREEN; - mtransport_margin = 10; - toggle_margin = 10; + mtransport_margin = xS(10); + toggle_margin = xS(10); new_button("pane.png", "pane_up.png", "pane_hi.png", "pane_dn.png", "pane"); new_image_set("xpane", 3, "xpane_up.png", "xpane_hi.png", "xpane_dn.png"); @@ -605,22 +591,22 @@ void BlueDotTheme::initialize() setformat_w = get_image("setformat_bg")->get_w(); setformat_h = get_image("setformat_bg")->get_h(); - setformat_x1 = 15; - setformat_x2 = 110; + setformat_x1 = xS(15); + setformat_x2 = xS(110); - setformat_x3 = 315; - setformat_x4 = 425; - setformat_y1 = 20; - setformat_y2 = 85; - setformat_y3 = 125; - setformat_margin = 30; - setformat_channels_x = 25; - setformat_channels_y = 242; - setformat_channels_w = 250; - setformat_channels_h = 250; + setformat_x3 = xS(315); + setformat_x4 = xS(425); + setformat_y1 = yS(20); + setformat_y2 = yS(85); + setformat_y3 = yS(125); + setformat_margin = xS(30); + setformat_channels_x = xS(25); + setformat_channels_y = yS(242); + setformat_channels_w = xS(250); + setformat_channels_h = yS(250); - loadfile_pad = get_image_set("loadmode_new")[0]->get_h() + 10; - browse_pad = 20; + loadfile_pad = get_image_set("loadmode_new")[0]->get_h() + yS(10); + browse_pad = yS(20); new_toggle("playpatch.png", @@ -932,13 +918,13 @@ void BlueDotTheme::initialize() recordgui_variable_color = RED; channel_position_color = MEYELLOW; - resources->meter_title_w = 25; + resources->meter_title_w = xS(25); // (asset) edit info text color edit_font_color = YELLOW; } -#define VWINDOW_METER_MARGIN 5 +#define VWINDOW_METER_MARGIN xS(5) void BlueDotTheme::build_bg_data() { @@ -971,18 +957,18 @@ void BlueDotTheme::build_overlays() void BlueDotTheme::draw_rwindow_bg(RecordGUI *gui) { // int y; -// int margin = 50; -// int margin2 = 80; +// int margin = xS(50); +// int margin2 = xS(80); // gui->draw_9segment(recordgui_batch_x - margin, // 0, // mwindow->session->rwindow_w - recordgui_status_x + margin, // recordgui_buttons_y, // rgui_batch); // gui->draw_3segmenth(recordgui_options_x - margin2, -// recordgui_buttons_y - 5, +// recordgui_buttons_y - yS(5), // mwindow->session->rwindow_w - recordgui_options_x + margin2, // rgui_controls); -// y = recordgui_buttons_y - 5 + rgui_controls->get_h(); +// y = recordgui_buttons_y - yS(5) + rgui_controls->get_h(); // gui->draw_9segment(0, // y, // mwindow->session->rwindow_w, @@ -992,17 +978,15 @@ void BlueDotTheme::draw_rwindow_bg(RecordGUI *gui) void BlueDotTheme::draw_rmonitor_bg(RecordMonitorGUI *gui) { -// int margin = 45; -// int panel_w = 300; +// int margin = xS(45); +// int panel_w = xS(300; // int x = rmonitor_meter_x - margin; // int w = mwindow->session->rmonitor_w - x; // if(w < rmonitor_meters->get_w()) w = rmonitor_meters->get_w(); -// gui->clear_box(0, -// 0, +// gui->clear_box(0, 0, // mwindow->session->rmonitor_w, // mwindow->session->rmonitor_h); -// gui->draw_9segment(x, -// 0, +// gui->draw_9segment(x, 0, // w, // mwindow->session->rmonitor_h, // rmonitor_meters); @@ -1024,31 +1008,28 @@ void BlueDotTheme::draw_mwindow_bg(MWindowGUI *gui) x += 9 * get_image("play")->get_w(); x += mtransport_margin; // the control buttons + int xs2 = xS(2); gui->draw_vframe(get_image("panel_divider"), - x - toggle_margin / 2 - pdw / 2 + 2, + x - toggle_margin / 2 - pdw / 2 + xs2, mbuttons_y - 1); x += 2 * get_image("arrow")->get_w() + toggle_margin; // the mode buttons gui->draw_vframe(get_image("panel_divider"), - x - toggle_margin / 2 - pdw / 2 + 2, + x - toggle_margin / 2 - pdw / 2 + xs2, mbuttons_y - 1); x += 3 * get_image("autokeyframe")->get_w() + toggle_margin; // the state toggle buttons gui->draw_vframe(get_image("panel_divider"), - x - toggle_margin / 2 - pdw / 2 + 2, + x - toggle_margin / 2 - pdw / 2 + xs2, mbuttons_y - 1); // Clock - gui->draw_3segmenth(0, - mbuttons_y - 1 + get_image("mbutton_bg")->get_h(), - get_image("patchbay_bg")->get_w(), - get_image("clock_bg")); + gui->draw_3segmenth(0, mbuttons_y - 1 + get_image("mbutton_bg")->get_h(), + get_image("patchbay_bg")->get_w(), get_image("clock_bg")); // Patchbay - gui->draw_3segmentv(patchbay_x, - patchbay_y, - patchbay_h, - get_image("patchbay_bg")); + gui->draw_3segmentv(patchbay_x, patchbay_y, + patchbay_h, get_image("patchbay_bg")); // Track canvas gui->set_color(BLACK); @@ -1058,17 +1039,13 @@ void BlueDotTheme::draw_mwindow_bg(MWindowGUI *gui) mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ) - mtimebar_h); // Timebar - gui->draw_3segmenth(mtimebar_x, - mtimebar_y, - mtimebar_w, - get_image("timebar_bg")); + gui->draw_3segmenth(mtimebar_x, mtimebar_y, + mtimebar_w, get_image("timebar_bg")); // Zoombar gui->set_color(0x1a1447); - gui->draw_box(mzoom_x, - mzoom_y, - mwindow->session->mwindow_w, - 25); + gui->draw_box(mzoom_x, mzoom_y, + mwindow->session->mwindow_w, yS(25)); // Scrollbar filler // gui->draw_vframe(get_image("mscroll_filler"), @@ -1106,42 +1083,35 @@ void BlueDotTheme::draw_cwindow_bg(CWindowGUI *gui) { gui->draw_3segmenth(cstatus_x, ccomposite_h, - cmeter_x - widget_border - cstatus_x + 100, + cmeter_x - widget_border - cstatus_x + xS(100), get_image("cbuttons_right")); } } void BlueDotTheme::draw_vwindow_bg(VWindowGUI *gui) { - gui->draw_3segmenth(0, - vcanvas_h, - vdivision_x, - get_image("vbuttons_left")); + gui->draw_3segmenth(0, vcanvas_h, + vdivision_x, get_image("vbuttons_left")); if(mwindow->edl->session->vwindow_meter) { - gui->draw_3segmenth(vdivision_x, - vcanvas_h, + gui->draw_3segmenth(vdivision_x, vcanvas_h, vmeter_x - widget_border - vdivision_x, get_image("cbuttons_right")); - gui->draw_9segment(vmeter_x - widget_border, - 0, + gui->draw_9segment(vmeter_x - widget_border, 0, mwindow->session->vwindow_w - vmeter_x + widget_border, mwindow->session->vwindow_h, get_image("cmeter_bg")); } else { - gui->draw_3segmenth(vdivision_x, - vcanvas_h, - vmeter_x - widget_border - vdivision_x + 100, + gui->draw_3segmenth(vdivision_x, vcanvas_h, + vmeter_x - widget_border - vdivision_x + xS(100), get_image("cbuttons_right")); } // Clock border - gui->draw_3segmenth(vtime_x - 20, - vtime_y - 1, - vtime_w + 40, - get_image("vclock")); + gui->draw_3segmenth(vtime_x - xS(20), vtime_y - 1, + vtime_w + xS(40), get_image("vclock")); } void BlueDotTheme::draw_preferences_bg(PreferencesWindow *gui) diff --git a/cinelerra-5.1/plugins/theme_blue/mask_all_linear.png b/cinelerra-5.1/plugins/theme_blue/mask_all_linear.png deleted file mode 100644 index ec43b0b99bc16dac1f7f234a6c21f2fc3bafb863..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 403 zcmV;E0c`$>P)IliBfX_TR8#}qJ$<55;SRjrj((e zh$xT{l!!Y->pRdx7v)i8jqJtVwIj;BZnZPt{Al08QC`+ORF!Td9stZ(RLTxs>%rc&VHLwNBSQ7xGI(1GL&gs)RUG>Fe$toRC;0d@d3VZ(-@KER|@EGV| z@L1>|@FCD7_)sWB43dI|PqHYiWs(-S_P!b45-+LJaegGc9dV2LRb(#PG002ovPDHLkV1ndJrGx+g diff --git a/cinelerra-5.1/plugins/theme_blue/mask_all_smooth.png b/cinelerra-5.1/plugins/theme_blue/mask_all_smooth.png deleted file mode 100644 index 4cab563c55b973f9ef7f169738294d2a31e787d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 651 zcmV;60(AX}P)`hJF6q(nyIp~NLK44CzO%d~V{D(T{Gg_+4$9NhRy@%{*R z`wuY1gf0LBQA7#&0HjkXx+K)hh;>|C)#klL4($pG!&KZfuO*&D5etKZY?zq}F)!b*iP;AvcJk7Izo&s;s+$0+bD z3A(f-$Bdh1Jnk60{K$5IGZKqQMLj)Cm{In9dy|xthS+C%%H=|c# z88`v_1m>fNnIN!YT?cBl=^7kMOiPRdX2yJ_!cY*{daIU`R_dOqs4f(f_|Xp9N)3+9 l$V<#tkNH-Goi64nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1Tcdb&7< zSoCh4ypi{ig8<9-|L2|fG?*?jSaNnMFKCItl&E<$Y#fSm?RN<(z)>2ENX>p*?+PLoa;Q7CGwNYBgo~tJQ}J73!Ww@*nx% zA3JS1UteiJ;#&*VkA*SUgFP;n?TD>jv5M2=SjV!vkJ!ueH-Ee2wjAVr22WQ%mvv4F FO#p)-cAx+N diff --git a/cinelerra-5.1/plugins/theme_blue/mask_button_hi.png b/cinelerra-5.1/plugins/theme_blue/mask_button_hi.png deleted file mode 100644 index 9fb80b7b5a2916ee1b5a130ed4033172eb4ae3b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 496 zcmVU(|fonv@Kn1tIq-Q*_!oczvvW@B?t&(Dr=;RrrX zn#3$EuVWS}i@LLWMCbx9;eL{Fu)m250*5sTlBHh4)+j;XaH@i80>(=h6-8BWs*2IX zR~HpQRdM+x!FWomq^L+vVM(#ZdI=ko zR;$H@waiSHD3vBCO^#D6j!`ItgwBy>8FAdF*NbU)UT8jdXf)dN`^gUu!HFnw{Pyjk zR)3{dzxy+Z$bjN!_`m0qB96L42#XL$o+tkJ+#>H2YyRi?HkL2rVJvS5#@1RK;GJT0 mw1`_-+v4=(&}(>gZJT$mmFt_Qwnjbx00004nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9jY*t|bg&nCs77A0Yo^bP0l+XkK Dlcp}G diff --git a/cinelerra-5.1/plugins/theme_blue/mask_crv_linear.png b/cinelerra-5.1/plugins/theme_blue/mask_crv_linear.png deleted file mode 100644 index e2093bf6320640ec3aeee3fd7c9fdf14efa9c7f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 450 zcmV;z0X_bSP)%(z41 z5&%T77e#X2HsgGZOVib|E_`Nuja}XP&&JNdMDSkL!%U3Lctm1}#L8%dWfIPeJsCRC!xBOwyS# zRps$iiL;C$fI(4UUqn78&qbsV!2y6l^_d!#rVLbhr^>@N){H$>-m7x4F|iqwP6tl_ zA`!fJn()N%bJ8Zb+Px*cE}0xB{@=!aIzwF5Tuhr>v3pmlaN1&gM;9i-h20+ zk9*-A_^-b$wO(Shcg`W`cP&kQ+~yg8#My}nz3%791fO^@*krHDyXRK$o-D)1`R%3{ zeO{t!lQbv(X>%b2Jq4h=J4~z8?QutqhR;b{0~RE10@z#yt^o5P==nfvwJJ?rjM3|> zt3KFSi_sxQuh;9|pXE=o3O08n7N(~3p|ci(B5-$Th}(YzuGd`x4(D>*%Q6-UEZQ9D zwoxWHNw@@5i$(p&0*{aDJFt`_R0aaqYAyh$H#ezfL0j}hVs35C`M%(Mo*CfX^t3+r zqlTbQ!2692W_p6t)Uy%~fkSEP*?!<=Pmp-j+20lro5wa~3E8{^#(IHmmTXS3orh&$ zU)PBNBqT8mjKt{cD=Y4r&KP}BV#H=IU4qtTlBn1$+hB7>Vs3PlTD|VelaqSWTz|~w zK5$@bi%OEP*tEC(j-HVQXf%9M;ui1?_yQc0c#z9+qt|!r3kI;Aq$x)wh9%yXO8Pp8 b@88ldU`VYerB?#j00000NkvXXu0mjfMe+yS diff --git a/cinelerra-5.1/plugins/theme_blue/mask_pnt_linear.png b/cinelerra-5.1/plugins/theme_blue/mask_pnt_linear.png deleted file mode 100644 index 79835735febf247c37d07cfef06e9cfa2b7e711d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 499 zcmVCJ)CNLd>=gQ!1vaJxj7lM~d z8ovp_-)$#7G5|vGQV2e>-SI?4^ZnCPzrL^D7QDQ44Oo|0lho=2mgH88HHnSGL-&<} z^W5{zCO?1?puh8({;H>kAz-+-my102{Owxx_QvLu%_|And;vzwz=i+ieg3wqkPwN# pUYWmo$Fy2>23SpiKFI$}^#@a9l);HAng;*?002ovPDHLkV1m0w*Z}|l diff --git a/cinelerra-5.1/plugins/theme_blue/mask_pnt_smooth.png b/cinelerra-5.1/plugins/theme_blue/mask_pnt_smooth.png deleted file mode 100644 index 92173d3855ef527b2a65a60385ab36c3f565774a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmVme`jojCr}8TWMi;}HxLr>XLTeZN*XUg z6bcVuX+%PyLZamfM3|i`5{W`0q9YQ`W-OwO*}iD{I!vfc8m@ zNUSD%t*xw>F>!gRV$)!WC5a8+x0htEr^lXw%|d~troeZ1Y6oV_NIh;#3l)jk+gr8e z20uM944nJEJ*0t)MY{)r*H?yegMqRcM`_TQjwH&tz>+*O#%s04;Ch_{U{X@%wFRJB zRVfU0l_M=G`P)YgurBC~cxeK;r@zzC!2-kemQ1 zCy0_ZO>zQD+`x|P4vvsWNrQw|Yndn|@&ORoUYJR-YqU1rwUe4@_UXNOAI@Dy37 zY%q>JG~*4>1YTs_SHO=XpsKrIB=)3aH24Gz5!o$b~ITEN0A2-C+;+W zu|!+qY-5Ap0N2;N0`|;!3k2@`k~p5npDifnQ-%(cg!c=UdjVX;vG>eqNi-xr0G|sh zj$;qq>AI673Gd4GaGGyMTVic8;UJ$svwvpko=UWrp#WQ38UP)4)~Z$Z^J6oxJI$**7y_)X^Kw<#{ULW) z2upm=ntQ9lQkt8a`xs6Vx)Nr_Q5<`?4DI)Q6F8K(2YQ8Yy{QH}CFf z0f8Bv?QLDotYm&d6nWszi9`dKklxd?(TGccT8$8R4IBai@bmVT4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T6d%8G= zSoFS~V#s&MfXDTJzeLrvCEJsldz&|Gjn2RNMaRd~TUS6OPsniLzmpU9$L-TmKd{jE zijrIBG(#4)wbNbCDeZ`qyFTeywV%qnY0p#cW@W}+ocOaY_)+CF?auC}E7|IuJb6}b ztm$3ErqyJ~(igoxo6Wkt{e<>PC&mTuElryDK3{V3-a^gL#^95y4p#HKEq%SR&Nltv s(%*9~pBEBu?mu$W^ZS)AoPU?k(=l*hT=k(v2k2}DPgg&ebxsLQ08|QdaR2}S diff --git a/cinelerra-5.1/plugins/theme_blue/mask_prst_ovl.png b/cinelerra-5.1/plugins/theme_blue/mask_prst_ovl.png deleted file mode 100644 index 8760bf2970d32806fc7c560ed0fe140a7e76a725..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 485 zcmVj|uApQb>VG|lU zosKBA`~{-2iCSS-;;XnpK~z4rT9P}j;$E@4aoHcRPcq5OoH_5jCuasabZEuW0@bQ= zLBN8`{+l28o@%{VjTxLCCNwuH~m)fWV8ILD%d`_q--fun4et$g0zQ-v=tHDJcR zM9z%5#G!MPz2_EqNsbLT$C$*N#1fDN?xKk0i3xlC*6M08QIg03SI$u?6zu62qtD4W ztyHuZ1ndIEOokG$`F*Ih)L8)USxpgbVsg?R%~)&9O%skcU3yd7rAb(#oJ_YX6%GBD zT&-$YVkcRiG{%~oU0kR?li>i!0Uu@@c~99nZh|0gUKBAHMHGljUnFi``1#4o)Revb zDhv>Y>aEvVH)E-t=O%I3-ObkMsMS&(H*$Tg5$~A?X3WS-@dq)ZCJ{pXLB_}J;jha( bbok*5qkMLi6-jP`00000NkvXXu0mjfVKdD` diff --git a/cinelerra-5.1/plugins/theme_blue/mask_prst_save.png b/cinelerra-5.1/plugins/theme_blue/mask_prst_save.png deleted file mode 100644 index 726a085d5698fd2ac9075dec7af3d1aee6939a2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 317 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TcdAc}; zSoFS~Y|Gbdz|(5)&ST5{Fzjx^V}-l7dZUldY2_^U6216gc~Gdw-)%QOUhe+Nv|NoP zJ7le`(`pY_*ABc(^9!6(`s4oDvwy^86O!07WVl) z>(KA~-nAt%wCH`c^qGvs58{>!n(IzkTB4Nl{r5zJ0~SS=F%`R>&tIH1%gu0imvY6@ zB&q3J`vqopCr;GX4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T?JzX3_ zEP9g@Bv=Cube!2)_4R+K7tiHuX;<1d&eSmEkWWxdF*anF?VtJVQDCz>ubgRx0?)Ci muz;vjh6Wcd99_)7$H29Zd(qnIiLZgiF?hQAxvXDsU9hjB62EzXG;~HQ)t!29Ax<+K<7&m0i0)&(?dbcY=-4ng~^3>NpI- zkRI>^9PP8-2^QhfmhECurk*D=pr6KiE7%yVt5Rk4u7mhI47rP~M&6JfGgeA>pz=jmJPvhQmnHP~^uuw}bclDEzKLP0_iy0*8u zd7lUl0zCyPB24CU?vsW9aybUEwVl}wj-n6S+a%i!>kfeGS8G|{jK_MmTynDwwkPMV nD-VgrQS|Z4GDqb5vwuAA@gZ;v1XYKr00000NkvXXu0mjfCGNT~ diff --git a/cinelerra-5.1/plugins/theme_blue/mask_prst_trsh.png b/cinelerra-5.1/plugins/theme_blue/mask_prst_trsh.png deleted file mode 100644 index d1f8f908fa723b4edd2e203dbb9e03e43913919b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1UDJzX3_ zEP9g@Bv=CubohTdHTD0^o*tgah$YXmvW>q@O!;ti_5bygURbc@=DOvU7^(&FN)|Mj z_IPsgINS9$K#BcQbmp00i_>zopr0D^2z`Tzg` diff --git a/cinelerra-5.1/plugins/theme_blue/mask_pstn_cen.png b/cinelerra-5.1/plugins/theme_blue/mask_pstn_cen.png deleted file mode 100644 index 1477c60bd157cfca2c8778ed4dfd763c9a41d2e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 399 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq!<_&c|2Vl zLo9lqPO&2juf^+(%DsP6^;qs--|D|;N#gFW zI`aa(3noOo{chuNCTH5@&Qlf3uA6Q3)oXN_nHptwKl<*DjR~9Le!qE;kZ|jDp>&h} zEvXiD{h_%orj)rRge;4U^YLWea_e=C)3<%_ r&*0z-eOkGAe*JS#HuHtYmzICD%HMH_^^poN@EAN@{an^LB{Ts5gGZk8 diff --git a/cinelerra-5.1/plugins/theme_blue/mask_pstn_nrm.png b/cinelerra-5.1/plugins/theme_blue/mask_pstn_nrm.png deleted file mode 100644 index c19e8ce7fcf55471ea10acbcc16023ea52a59b8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1V2JY5_^ zEP9g@Bv=Cube!2)_4R*f%D!!8i_PrLx~z5&_uz84e%fW7V++Gsp0p$Co*Ee+jxyFZ xC8fCE%UE@Q&#i1#f}^;@H=&hBpJ^Q6Vlerw)A#uxe+$rL22WQ%mvv4FO#rVXLk9o= diff --git a/cinelerra-5.1/plugins/theme_blue/mask_scale_chkd.png b/cinelerra-5.1/plugins/theme_blue/mask_scale_chkd.png deleted file mode 100644 index db23a74cee3b3360ee6ee8b284c15aa57cddd152..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcmV;t0YmYm0zni-&#NvFjEPP)EC8MA#vHp47bVMpfjAPS zKQ#5Og9Zi)iD~MNJ13`Z-)GM+Z(1yBj64xAnT&|@dBxM?kmP}Asp(^t6+yD!(kJ77p-;1V$ai=Y5FMgrRcC8i3I_r)jGEVE0oU_s`+-a(8^VyzF2X(NE5;e_T#98)P>&8xW`W mw@9y~ZJPyJ#39p%JAMFf8QAikna0Qf0000BtC5&>4O zG=Ui%(&&PWvcQ??zwff>(U=Uzgf70MHnsTb5TEgb6&m}u|L|w?Eh*Un9r~II{U`#;yX>#_V>2ln-UHznO+l>eFt#xs=T5P)dbwgQ}_wpQzwTi0R zEFO|a`mN#);vwnR%|%r$(-%v3J02405Aj2&kf$$}6ZMaE8xpyQA>_%4L&%ATuSU3k jplj27PgyKDe7(;t&z0i9bP$>&00000NkvXXu0mjfMGoIk diff --git a/cinelerra-5.1/plugins/theme_blue/mask_scale_up.png b/cinelerra-5.1/plugins/theme_blue/mask_scale_up.png deleted file mode 100644 index fc52498d3727f6998816f45c30e09040557c8f2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9jY*t|bg&nCs77A0Yo^bP0l+XkK Dlcp}G diff --git a/cinelerra-5.1/plugins/theme_blue/mask_scale_uphi.png b/cinelerra-5.1/plugins/theme_blue/mask_scale_uphi.png deleted file mode 100644 index 9fb80b7b5a2916ee1b5a130ed4033172eb4ae3b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 496 zcmVU(|fonv@Kn1tIq-Q*_!oczvvW@B?t&(Dr=;RrrX zn#3$EuVWS}i@LLWMCbx9;eL{Fu)m250*5sTlBHh4)+j;XaH@i80>(=h6-8BWs*2IX zR~HpQRdM+x!FWomq^L+vVM(#ZdI=ko zR;$H@waiSHD3vBCO^#D6j!`ItgwBy>8FAdF*NbU)UT8jdXf)dN`^gUu!HFnw{Pyjk zR)3{dzxy+Z$bjN!_`m0qB96L42#XL$o+tkJ+#>H2YyRi?HkL2rVJvS5#@1RK;GJT0 mw1`_-+v4=(&}(>gZJT$mmFt_Qwnjbx00004nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1S(c)B=- zSoFS~v^R?>P@r{x=QT00m&}(uL$m9&3sj#E*{{Pz0Uyq(5}XEsin^#6GE)yXdUjC;*zzx+0*F8IrfIY|jJSvnin zg-KSg_nVk^Jb2c{=^c#QqUEA>f9w3(5%EIrbj9hz-%Xxwy}NDwli-`kz?B=!lz%4&HiRT?<>p%xp%;2P=LMrINA$zJ?@oSCIOdWh;QCEA$9Dc} zMNgAbzq`ej=T^SnYxl`@en5q2Z=0{`yym<0m04!FMUHWvCry7cMlrtrr!+UILZ^~ zy8LDUQ$(Xw(NnO9#uO1$*=w-;aqP6ju@;mnc?;HSj=hg!J>v#Z1h)r?gd@Zk;;!|+ z-jmpAn_{uB1uTuHqVrIQ!RRUM)MCSrl`1iQZk+kgpGaoxt&TO$rYNkSMQrFaq0TS> z>GWbZa)@Y*{q0>6IT{6^I}~Ab_zae1xq|+ua=Fa= zk8?bJbgw>&QaMjeR}hh=z_nV1T<+K33u4<}$!0T*4xi*jUU8LAq1-=m7l74B6bST!)C;JPL$_#ib;7+WJX*d4QtDa z+iecwm<|y6(1+=1trv5qrt}SX>zs{B%=u0`BO@ICQ}NQ0I=~@tBC!T6XPK=AUE!R) zlvt5i2Tsj6n4DCpt6EqD>`06zi8fm;!;IA|GtyLRA!(9m!#R`0&yb{w_@fy^07;@v z=PZ&~an3G%+bd>lq^UOi`!>)GNfZXE;8nf=?wIj9^t}pIiYp;;&kGs;ulz93YS~1u zM{QqQn@m9uCSMTpFku4L`j1HxdI268D|6 zYlDL81C?k1KSJV?70sqaam*+Df)tfjShnnK=`YBW;=f!{9LLP_ck9S=o@SYiNo*&H zj^N5uGa68&w#_f7#t61co*QP+BX6Vp|H>KvSyIb~$gxe%^?iV+wXIuz^4XVoJj$LJOX+g; zi%-#1&5LE3dt$mNRr8`r>0+Ato*GN(qDd(+jVZWr@igYEWStzaKVybkAswntt zG0g(fEha8Uv5+(o;v}l7ZR}G?;twBHJick@sLS6N%v(e-D==E>dPiuuGmKA)ed_!Ppi zI1}l`5e^fvNdO|@9>Sfk6N^u8)Cdd1G)q3k#4eUmY5a8dPgF(4GISuqz=t5Bx?oHg`-h(?^ zO6j zIF7@}&FdUL*3P=VPAWBDp4i3O#`tL4aq5Eg2*>8)TbH;wcAe3&q0;rSTSF)w=#LIy z8aiDa-Q@CF#>Yptp(so2_4+u{dJLb>Pk(fP;TzW&9vR%hap;?`C=_%C-v1DQP^bYZ z1(s!&p(tZ~w5=VVZ)@nE={<+v@8{>(Pds_@8vq9nHgh_1meY~*6@d;nw=y#`wK*#` z7;mnQj&P~iwoTIMB$-T_d@fU}SzB8nlS%V;Viv>L!g!+nB&Mk&-6D!|#*K|ljEoNQ z%k+I7KAOh1cm4zx60jAd_00004nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1UPdb&7< zSoFS~vN4y*QNZ=S&UJz;a8IIiC4|#fAxf z5!MT)ZVK+ea9M$`Iyoinw#b(eeg)LO6Q{1go2A%MIMv%`5M`c!yN8vT~E{LcYjyBzRdG#$ki*> z?|<#N|HA&quY<0uBp2H1=Ge58~%kb$m*v50j*~o2A+Vaw$@9*1}!mZ-|XYCH} RW(EcTgQu&X%Q~loCIIH8lW+h4 diff --git a/cinelerra-5.1/plugins/theme_blue/mask_scale_ydown.png b/cinelerra-5.1/plugins/theme_blue/mask_scale_ydown.png deleted file mode 100644 index 9a457e610ab4469fe1266a89d1a0b350f48e6d1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 662 zcmV;H0%`q;P)6I-pJt(p>)T0zsLh%QnQ z>?BS)IoL&<1VIOff~YtYrxL0D11=TB(m@?8G*F>h6eWw4rcF$dHl)d2;`=%@sm5II zZb%=v;r-t8JUl$__fENbeN4{2e~G5=p%EyTOoq-~M(I6rQr@`r6h-kh#8^tf#Q04# zRnxI7vmvHcsG5!@rNA^dJqbc>1`^2r+HmAaDbS>pm_>JEUDN126hcuHvTJLYR>{Fw zZY8!nBtCvLieJ|Oi1Zxf83y!8;2RiB8AKX571oshaGgw|t+Z&5YVy7zn zen0)uzPkCqu_&q46vblw#sBTtp^9kaFyE5j`LVRb$c2jlOuczccQ{N>xQm6wMH^%3 zz7>i2MBOZ%Ss|TS*-=wTEU-Lm#lLXlODWKVhs*mPZhRp;RAF!IA+gsFq{i5_irq~t zupBxYK0gA$!l(J|S$k_c11C-aFg-J6YpjGix~0()tb18SAkfU+JC8ApmYR7!pJVL7 zZF0HwI?cv<7IkmHxUZn_yIit;3WYqGpD6}oXKKXHUyPGXezDb*%O;u>?j6s~y(M;f zh{4#|t#jfXA7*EE@6mV$`YX5%x^ zXb;I%(GU_73wQx(bkSl9Noe&E$XuX+;PzTsE$lfKTsFHd-av`r@8-<;znOE+4BYGg zSDt&4=bqd&UsapO$NuR2oQ}jIFjIzqNbE~|nw!(lTZ0b|{h1lh0nFISGQI;0hb%~} zNVpmA8x4KD&OcR}yQf9r8)mFZIM8l3wPQwRM%HNP1JHIy5^FK~TX#<@!Iw}r-FZ^p zZaW0^i^5+6J)l<<{wf6Z&Dbh!Pmhk+=yoUJ6Rn8RbD%vsHDSq&tb~qa#&VW1G~?@7 zxEq3A{;L)KcS&Z`v04ou45sEYkv9R3k@X~D?`nNoiSijam0% zQ$6|UI&(e-#|MA^$!mGajk~e>pG3mXMkPc0nnSDXHC+u5`3ki@DA|89l5ie zrhFR=P@2+`SSd??7lL-L^H+Y582zC{$DKuB7C_?6oqaBc^{dK%Bi;5(-|G(R4_ykS Uw?dO$ga7~l07*qoM6N<$f*khhHvj+t diff --git a/cinelerra-5.1/plugins/theme_blue/unclear_dn.png b/cinelerra-5.1/plugins/theme_blue/unclear_dn.png deleted file mode 100644 index 35a371471ac422719d01caa6415b7b968b1bd023..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 316 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1Tcdb&7< zSoCh4ypi{ig8<9-|L2|fG?*?jSaNnMFKCItl&E<$Y#fSm?RN<(z)>2ENX>p*?+PLoa;Q7CGwNYBgo~tJQ}J73!Ww@*nx% zA3JS1UteiJ;#&*VkA*SUgFP;n?TD>jv5M2=SjV!vkJ!ueH-Ee2wjAVr22WQ%mvv4F FO#p)-cAx+N diff --git a/cinelerra-5.1/plugins/theme_blue/unclear_hi.png b/cinelerra-5.1/plugins/theme_blue/unclear_hi.png deleted file mode 100644 index 9fb80b7b5a2916ee1b5a130ed4033172eb4ae3b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 496 zcmVU(|fonv@Kn1tIq-Q*_!oczvvW@B?t&(Dr=;RrrX zn#3$EuVWS}i@LLWMCbx9;eL{Fu)m250*5sTlBHh4)+j;XaH@i80>(=h6-8BWs*2IX zR~HpQRdM+x!FWomq^L+vVM(#ZdI=ko zR;$H@waiSHD3vBCO^#D6j!`ItgwBy>8FAdF*NbU)UT8jdXf)dN`^gUu!HFnw{Pyjk zR)3{dzxy+Z$bjN!_`m0qB96L42#XL$o+tkJ+#>H2YyRi?HkL2rVJvS5#@1RK;GJT0 mw1`_-+v4=(&}(>gZJT$mmFt_Qwnjbx00004nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9jY*t|bg&nCs77A0Yo^bP0l+XkK Dlcp}G diff --git a/cinelerra-5.1/plugins/theme_blue_dot/bluedottheme.C b/cinelerra-5.1/plugins/theme_blue_dot/bluedottheme.C index 89cd2b94..8865fec1 100644 --- a/cinelerra-5.1/plugins/theme_blue_dot/bluedottheme.C +++ b/cinelerra-5.1/plugins/theme_blue_dot/bluedottheme.C @@ -55,12 +55,6 @@ PluginClient* new_plugin(PluginServer *server) return new BlueDotThemeMain(server); } - - - - - - BlueDotThemeMain::BlueDotThemeMain(PluginServer *server) : PluginTClient(server) { @@ -81,12 +75,6 @@ Theme* BlueDotThemeMain::new_theme() } - - - - - - BlueDotTheme::BlueDotTheme() : Theme() { @@ -112,36 +100,29 @@ void BlueDotTheme::initialize() // about_bg = new_image("about_bg.png"); - // COPIED FROM DEFAULT THEME 1>> resources->text_default = 0x000000; resources->text_background = 0xffffff; resources->text_background_disarmed = 0xff3939; - //listbox borders resources->text_border1 = 0x4a484a; // (top outer) resources->text_border2 = 0x000000; // (top inner) resources->text_border3 = 0xacaeac; // (bottom inner) resources->text_border4 = 0xffffff; // (bottom outer) resources->text_inactive_highlight = 0xacacac; resources->text_highlight = BGREY; - // COPIED FROM DEFAULT THEME <<1 resources->bg_color = FGGREY; //bg of windows (where no pics... - // COPIED FROM DEFAULT THEME 2>> resources->default_text_color = 0x000000; resources->menu_title_text = 0x000000; resources->popup_title_text = 0x000000; - // COPIED FROM DEFAULT THEME <<2 resources->menu_item_text = BLACK; - // COPIED FROM DEFAULT THEME 3>> - resources->generic_button_margin = 15; //Length of buttons and color tabs + resources->generic_button_margin = xS(15); //Length of buttons and color tabs resources->pot_needle_color = resources->text_default; resources->pot_offset = 0; resources->progress_text = resources->text_default; - // COPIED FROM DEFAULT THEME <<3 resources->meter_font = SMALLFONT; //Specific to BD resources->meter_font_color = BLACK; - resources->meter_title_w = 20; //Specific to BD + resources->meter_title_w = xS(20); //Specific to BD resources->meter_3d = 0; //Specific to BD resources->menu_light = FTGREY; //menu @@ -150,13 +131,10 @@ void BlueDotTheme::initialize() resources->menu_up = FGGREY; resources->menu_shadow = FTGREY; - // MIHA: COPIED FROM DEFAULT THEME M1>> - resources->popupmenu_margin = 10; // ugly - resources->popupmenu_triangle_margin = 15; // ugly - // MIHA: COPIED FROM DEFAULT THEME M1<< + resources->popupmenu_margin = xS(10); + resources->popupmenu_triangle_margin = xS(15); - // COPIED FROM DEFAULT THEME 4>> resources->listbox_title_color = 0x000000; resources->listbox_title_margin = 0; @@ -171,11 +149,10 @@ void BlueDotTheme::initialize() resources->listbox_text = 0x000000; resources->listbox_selected = BGREY; - resources->dirbox_margin = 50; - resources->filebox_margin = 105; + resources->dirbox_margin = yS(50); + resources->filebox_margin = yS(105); resources->file_color = 0x000000; resources->directory_color = DKBLUE; - // COPIED FROM DEFAULT THEME <<4 resources->menu_highlighted_fontcolor = DDBLUE; //Specific to BD new_toggle("loadmode_new.png", @@ -556,11 +533,11 @@ void BlueDotTheme::initialize() //COPY START >> preferences_category_overlap = 0; - preferencescategory_x = 5; - preferencescategory_y = 5; - preferencestitle_x = 5; - preferencestitle_y = 10; - preferencesoptions_x = 5; + preferencescategory_x = xS(5); + preferencescategory_y = yS(5); + preferencestitle_x = xS(5); + preferencestitle_y = yS(10); + preferencesoptions_x = xS(5); preferencesoptions_y = 0; //COPY END<< @@ -568,8 +545,8 @@ void BlueDotTheme::initialize() //COPY START >> message_normal = resources->text_default; audio_color = BLACK; - mtransport_margin = 11; - toggle_margin = 11; + mtransport_margin = xS(11); + toggle_margin = xS(11); //COPY END >> new_image("mbutton_left","mbutton_left.png"); @@ -648,24 +625,24 @@ void BlueDotTheme::initialize() new_image("setformat_bg", "setformat_bg2.png"); // x, y of Format dialog box - setformat_w = 600; - setformat_h = 560; - setformat_x1 = 15; - setformat_x2 = 100; - - setformat_x3 = 315; - setformat_x4 = 415; - setformat_y1 = 20; - setformat_y2 = 85; - setformat_y3 = 125; - setformat_margin = 30; - setformat_channels_x = 25; - setformat_channels_y = 242; - setformat_channels_w = 250; - setformat_channels_h = 250; - - loadfile_pad = 70; - browse_pad = 20; + setformat_w = xS(600); + setformat_h = yS(560); + setformat_x1 = xS(15); + setformat_x2 = xS(100); + + setformat_x3 = xS(315); + setformat_x4 = xS(415); + setformat_y1 = yS(20); + setformat_y2 = yS(85); + setformat_y3 = yS(125); + setformat_margin = xS(30); + setformat_channels_x = xS(25); + setformat_channels_y = yS(242); + setformat_channels_w = xS(250); + setformat_channels_h = yS(250); + + loadfile_pad = yS(70); + browse_pad = yS(20); //This buttons miss a bit. May need to be improved new_image_set("playpatch_data", @@ -916,7 +893,6 @@ void BlueDotTheme::initialize() "batchcancel_hi.png", "batchcancel_dn.png"); -// MIHA: COPIED FROM DEFAULT THEME M2>> //Graphic Copied from default. Improve!! new_image_set("category_button", 3, @@ -929,7 +905,6 @@ void BlueDotTheme::initialize() "preferencesbutton_up.png", "preferencesbutton_uphi.png", "preferencesbutton_dnlo.png"); -// MIHA: COPIED FROM DEFAULT THEME M2<< new_toggle("arrow.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "arrow"); @@ -945,7 +920,6 @@ void BlueDotTheme::initialize() new_image("locklabels_unlockedhi.png"), "locklabels"); -// MIHA: COPIED FROM DEFAULT THEME M3>> //Is that necessary?? VFrame *cpanel_up = new_image("editpanel_up.png"); VFrame *cpanel_hi = new_image("editpanel_hi.png"); @@ -964,7 +938,6 @@ void BlueDotTheme::initialize() new_toggle("titlesafe.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "titlesafe"); new_toggle("toolwindow.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "tool"); -// MIHA: COPIED FROM DEFAULT THEME M3<< // Maybe we can live without the commented part // MIHA: Commented out in favor of default version M4>> @@ -1007,7 +980,7 @@ void BlueDotTheme::initialize() resources->medium_font = cstrdup(string); channel_position_color = MEYELLOW; - resources->meter_title_w = 25; + resources->meter_title_w = xS(25); // (asset) edit info text color edit_font_color = BLACK; @@ -1052,9 +1025,8 @@ void BlueDotTheme::initialize() resources->tooltip_bg_color = 0xfff7e3; } -//CWINDOW is probalby ComposerWindow, V=ViewerWindow -#define CWINDOW_METER_MARGIN 5 -#define VWINDOW_METER_MARGIN 5 +#define CWINDOW_METER_MARGIN xS(5) +#define VWINDOW_METER_MARGIN xS(5) //Specific to BD void BlueDotTheme::get_mwindow_sizes(MWindowGUI *gui, int w, int h) @@ -1062,11 +1034,11 @@ void BlueDotTheme::get_mwindow_sizes(MWindowGUI *gui, int w, int h) // Position of menu buttons (start, stop, ff, etc.) mbuttons_x = 0; mbuttons_y = gui->mainmenu->get_h(); - mbuttons_w = w - (ffmpeg_toggle[0]->get_w()+2 + proxy_p_toggle[0]->get_w()+2); + mbuttons_w = w - (ffmpeg_toggle[0]->get_w()+xS(2) + proxy_p_toggle[0]->get_w()+xS(2)); mbuttons_h = get_image("mbutton_left")->get_h(); - mclock_x = 20; //x position of digits in clock window + mclock_x = xS(20); //x position of digits in clock window mclock_y = mbuttons_y + 1 + mbuttons_h + CWINDOW_METER_MARGIN; - mclock_w = get_image("clock_bg")->get_w() - 72; + mclock_w = get_image("clock_bg")->get_w() - xS(72); mclock_h = get_image("clock_bg")->get_h(); //Time bar - coordinates and dimensions @@ -1087,10 +1059,10 @@ void BlueDotTheme::get_mwindow_sizes(MWindowGUI *gui, int w, int h) mstatus_y = mzoom_y + mzoom_h; mstatus_w = w; mstatus_h = h - mstatus_y; - mstatus_message_x = 10; - mstatus_message_y = 8; - mstatus_progress_w = 230; - mstatus_progress_x = mstatus_w - statusbar_cancel_data[0]->get_w() - 240; + mstatus_message_x = xS(10); + mstatus_message_y = yS(8); + mstatus_progress_w = xS(230); + mstatus_progress_x = mstatus_w - statusbar_cancel_data[0]->get_w() - xS(240); mstatus_progress_y = mstatus_h - BC_WindowBase::get_resources()->progress_images[0]->get_h(); //Specific to BD @@ -1129,29 +1101,29 @@ void BlueDotTheme::get_cwindow_sizes(CWindowGUI *gui, int cwindow_controls) { SET_TRACE ccomposite_x = 0; - ccomposite_y = 5; + ccomposite_y = yS(5); ccomposite_w = get_image("cpanel_bg")->get_w(); ccomposite_h = mwindow->session->cwindow_h - get_image("cbuttons_left")->get_h(); - cslider_x = 5; - cslider_y = ccomposite_h + 23; - cedit_x = 10; - cedit_y = cslider_y + 17; - ctransport_x = 10; + cslider_x = xS(5); + cslider_y = ccomposite_h + yS(23); + cedit_x = xS(10); + cedit_y = cslider_y + yS(17); + ctransport_x = xS(10); ctransport_y = mwindow->session->cwindow_h - get_image_set("autokeyframe")[0]->get_h(); ccanvas_x = ccomposite_x + ccomposite_w; ccanvas_y = 0; ccanvas_h = ccomposite_h; -//COPIED START - cstatus_x = 453; - cstatus_y = mwindow->session->cwindow_h - 66; -//COPIED END + + cstatus_x = xS(453); + cstatus_y = mwindow->session->cwindow_h - yS(66); + if(mwindow->edl->session->cwindow_meter) { cmeter_x = mwindow->session->cwindow_w - MeterPanel::get_meters_width(this, mwindow->edl->session->audio_channels, mwindow->edl->session->cwindow_meter); - ccanvas_w = cmeter_x - ccanvas_x - 5; + ccanvas_w = cmeter_x - ccanvas_x - xS(5); } else { @@ -1168,12 +1140,12 @@ SET_TRACE ccomposite_w = get_image("cpanel_bg")->get_w(); ccomposite_h = mwindow->session->cwindow_h - get_image("cbuttons_left")->get_h(); - cslider_x = 5; + cslider_x = xS(5); cslider_y = mwindow->session->cwindow_h; - cedit_x = 10; - cedit_y = cslider_y + 17; - ctransport_x = 10; - ctransport_y = cedit_y + 40; + cedit_x = xS(10); + cedit_y = cslider_y + yS(17); + ctransport_x = xS(10); + ctransport_y = cedit_y + yS(40); ccanvas_x = 0; ccanvas_y = 0; ccanvas_w = mwindow->session->cwindow_w; @@ -1188,10 +1160,10 @@ SET_TRACE SET_TRACE - czoom_x = ctransport_x + PlayTransport::get_transport_width(mwindow) + 20; - czoom_y = ctransport_y + 5; + czoom_x = ctransport_x + PlayTransport::get_transport_width(mwindow) + xS(20); + czoom_y = ctransport_y + yS(5); - cmeter_y = 5; + cmeter_y = yS(5); cmeter_h = mwindow->session->cwindow_h - cmeter_y; ctimebar_x = ccanvas_x; @@ -1203,14 +1175,14 @@ SET_TRACE ctimebar_x = ccanvas_x; ctimebar_y = ccanvas_y + ccanvas_h; ctimebar_w = ccanvas_w; - ctimebar_h = 16; + ctimebar_h = yS(16); // Not used ctime_x = ctransport_x + PlayTransport::get_transport_width(mwindow); ctime_y = ctransport_y; cdest_x = czoom_x; - cdest_y = czoom_y + 30; + cdest_y = czoom_y + yS(30); SET_TRACE } @@ -1237,8 +1209,8 @@ void BlueDotTheme::get_rmonitor_sizes(int do_audio, audio_channels); if(!do_video && do_audio) { - rmonitor_meter_y -= 30; - rmonitor_meter_h += 30; + rmonitor_meter_y -= yS(30); + rmonitor_meter_h += yS(30); } } // COPIED END-------- @@ -1246,7 +1218,7 @@ void BlueDotTheme::get_rmonitor_sizes(int do_audio, void BlueDotTheme::get_vwindow_sizes(VWindowGUI *gui) { - vmeter_y = 5; + vmeter_y = yS(5); vmeter_h = mwindow->session->vwindow_h - cmeter_y; vcanvas_x = 0; vcanvas_y = 0; @@ -1269,34 +1241,28 @@ void BlueDotTheme::get_vwindow_sizes(VWindowGUI *gui) vtimebar_x = vcanvas_x; vtimebar_y = vcanvas_y + vcanvas_h; vtimebar_w = vcanvas_w; - vtimebar_h = 16; + vtimebar_h = yS(16); //Specific to BD - vslider_x = 10; - vslider_y = vtimebar_y + 25; + vslider_x = xS(10); + vslider_y = vtimebar_y + yS(25); vslider_w = vtimebar_w - vslider_x; - vedit_x = 10; - vedit_y = vslider_y + 17; - vtransport_x = 10; + vedit_x = xS(10); + vedit_y = vslider_y + yS(17); + vtransport_x = xS(10); vtransport_y = mwindow->session->vwindow_h - get_image_set("autokeyframe")[0]->get_h(); - vtime_x = 373; - vtime_y = vedit_y + 7; - vtime_w = 100; + vtime_x = xS(373); + vtime_y = vedit_y + yS(7); + vtime_w = xS(100); - - - - vzoom_x = vtime_x + 150; + vzoom_x = vtime_x + xS(150); vzoom_y = vtime_y; - vsource_x = vtime_x + 50; - vsource_y = vtransport_y + 5; + vsource_x = vtime_x + xS(50); + vsource_y = vtransport_y + yS(5); } - - - void BlueDotTheme::build_icons() { new_image("mwindow_icon", "heroine_icon.png"); @@ -1351,20 +1317,18 @@ void BlueDotTheme::build_overlays() void BlueDotTheme::draw_rwindow_bg(RecordGUI *gui) { // int y; -// int margin = 50; -// int margin2 = 80; -// gui->draw_9segment(recordgui_batch_x - margin, -// 0, +// int margin = xS(50); +// int margin2 = xS(80); +// gui->draw_9segment(recordgui_batch_x - margin, 0, // mwindow->session->rwindow_w - recordgui_status_x + margin, // recordgui_buttons_y, // rgui_batch); // gui->draw_3segmenth(recordgui_options_x - margin2, -// recordgui_buttons_y - 5, +// recordgui_buttons_y - yS(5), // mwindow->session->rwindow_w - recordgui_options_x + margin2, // rgui_controls); -// y = recordgui_buttons_y - 5 + rgui_controls->get_h(); -// gui->draw_9segment(0, -// y, +// y = recordgui_buttons_y - yS(5) + rgui_controls->get_h(); +// gui->draw_9segment(0, y, // mwindow->session->rwindow_w, // mwindow->session->rwindow_h - y, // rgui_list); @@ -1372,31 +1336,25 @@ void BlueDotTheme::draw_rwindow_bg(RecordGUI *gui) void BlueDotTheme::draw_rmonitor_bg(RecordMonitorGUI *gui) { -// int margin = 45; -// int panel_w = 300; +// int margin = xS(45); +// int panel_w = xS(300); // int x = rmonitor_meter_x - margin; // int w = mwindow->session->rmonitor_w - x; // if(w < rmonitor_meters->get_w()) w = rmonitor_meters->get_w(); -// gui->clear_box(0, -// 0, +// gui->clear_box(0, 0, // mwindow->session->rmonitor_w, // mwindow->session->rmonitor_h); -// gui->draw_9segment(x, -// 0, +// gui->draw_9segment(x, 0, // w, // mwindow->session->rmonitor_h, // rmonitor_meters); } - - - - //Specific to BD void BlueDotTheme::draw_mwindow_bg(MWindowGUI *gui) { // Button bar (not menu bar) -#define MBUTTONS_RIGHTEDGE 290 + 11 + 2*30 + 11 + 2*30 + 11 + 14*30 +#define MBUTTONS_RIGHTEDGE xS(290 + 11 + 2*30 + 11 + 2*30 + 11 + 14*30) gui->draw_3segmenth(mbuttons_x, mbuttons_y, MBUTTONS_RIGHTEDGE, @@ -1404,25 +1362,21 @@ void BlueDotTheme::draw_mwindow_bg(MWindowGUI *gui) 0); gui->draw_3segmenth(mbuttons_x + MBUTTONS_RIGHTEDGE, mbuttons_y, - mbuttons_w - 500, + mbuttons_w - xS(500), get_image("mbutton_right")); -// MIHA: COPIED FROM DEFAULT THEME M6>> gui->draw_vframe(get_image("panel_divider"), - mbuttons_x + 290 + 5, + mbuttons_x + xS(290 + 5), mbuttons_y - 1); gui->draw_vframe(get_image("panel_divider"), - mbuttons_x + 290 + 11 + 30 * 2 + 5, + mbuttons_x + xS(290 + 11 + 30 * 2 + 5), mbuttons_y - 1); gui->draw_vframe(get_image("panel_divider"), - mbuttons_x + 290 + 11 + 30 * 2 + 11 + 30 * 3 + 5, + mbuttons_x + xS(290 + 11 + 30 * 2 + 11 + 30 * 3 + 5), mbuttons_y - 1); - -// MIHA: COPIED FROM DEFAULT THEME M6<< - //Specific to BD // Clock (here the background of the clock is drawn) gui->draw_3segmenth(0, @@ -1432,61 +1386,43 @@ void BlueDotTheme::draw_mwindow_bg(MWindowGUI *gui) //Specific to BD // Patchbay - gui->draw_3segmentv(patchbay_x, - patchbay_y, - patchbay_h, - get_image("patchbay_bg")); - -//patchbay_h + 10, - + gui->draw_3segmentv(patchbay_x, patchbay_y, + patchbay_h, get_image("patchbay_bg")); +//patchbay_h + yS(10), //Specific to BD //Drawing of Track's canvas - gui->draw_9segment(mcanvas_x, - mcanvas_y, - mcanvas_w, - patchbay_h + 26, + gui->draw_9segment(mcanvas_x, mcanvas_y, + mcanvas_w, patchbay_h + yS(26), get_image("tracks_bg")); -//patchbay_h + 10, +//patchbay_h + yS(10), // Timebar - gui->draw_3segmenth(mtimebar_x, - mtimebar_y, - mtimebar_w, - get_image("timebar_bg")); + gui->draw_3segmenth(mtimebar_x, mtimebar_y, + mtimebar_w, get_image("timebar_bg")); //Specific to BD // Zoombar -#define ZOOMBAR_CENTER 1100 - gui->draw_3segmenth(mzoom_x, - mzoom_y, - ZOOMBAR_CENTER, - get_image("zoombar_left")); +#define ZOOMBAR_CENTER xS(1100) + gui->draw_3segmenth(mzoom_x, mzoom_y, + ZOOMBAR_CENTER, get_image("zoombar_left")); if(mzoom_w > ZOOMBAR_CENTER) - gui->draw_3segmenth(mzoom_x + ZOOMBAR_CENTER, - mzoom_y, - mzoom_w - ZOOMBAR_CENTER, - get_image("zoombar_right")); - - + gui->draw_3segmenth(mzoom_x + ZOOMBAR_CENTER, mzoom_y, + mzoom_w - ZOOMBAR_CENTER, get_image("zoombar_right")); // Status - gui->draw_3segmenth(mstatus_x, - mstatus_y, - ZOOMBAR_CENTER, - get_image("statusbar_left")); + gui->draw_3segmenth(mstatus_x, mstatus_y, + ZOOMBAR_CENTER, get_image("statusbar_left")); if(mstatus_w > ZOOMBAR_CENTER) - gui->draw_3segmenth(mstatus_x + ZOOMBAR_CENTER, - mstatus_y, - mstatus_w - ZOOMBAR_CENTER, - get_image("statusbar_right")); + gui->draw_3segmenth(mstatus_x + ZOOMBAR_CENTER, mstatus_y, + mstatus_w - ZOOMBAR_CENTER, get_image("statusbar_right")); } void BlueDotTheme::draw_cwindow_bg(CWindowGUI *gui) { //Specific to BD - const int button_division = 530; + const int button_division = xS(530); gui->draw_3segmentv(0, 0, ccomposite_h, get_image("cpanel_bg")); gui->draw_3segmenth(0, ccomposite_h, button_division, get_image("cbuttons_left")); if(mwindow->edl->session->cwindow_meter) @@ -1505,7 +1441,7 @@ void BlueDotTheme::draw_cwindow_bg(CWindowGUI *gui) { gui->draw_3segmenth(button_division, ccomposite_h, - cmeter_x - CWINDOW_METER_MARGIN - button_division + 100, + cmeter_x - CWINDOW_METER_MARGIN - button_division + xS(100), get_image("cbuttons_right")); } } @@ -1513,7 +1449,7 @@ void BlueDotTheme::draw_cwindow_bg(CWindowGUI *gui) void BlueDotTheme::draw_vwindow_bg(VWindowGUI *gui) { //Specific to BD - const int button_division = 535; + const int button_division = xS(535); gui->draw_3segmenth(0, vcanvas_h, button_division, @@ -1534,7 +1470,7 @@ void BlueDotTheme::draw_vwindow_bg(VWindowGUI *gui) { gui->draw_3segmenth(button_division, vcanvas_h, - vmeter_x - VWINDOW_METER_MARGIN - button_division + 100, + vmeter_x - VWINDOW_METER_MARGIN - button_division + xS(100), get_image("vbuttons_right")); } } @@ -1546,7 +1482,7 @@ void BlueDotTheme::get_preferences_sizes() //Specific to BD void BlueDotTheme::draw_preferences_bg(PreferencesWindow *gui) { - gui->draw_9segment(0, 0, gui->get_w(), gui->get_h() - 40, get_image("preferences_bg")); + gui->draw_9segment(0, 0, gui->get_w(), gui->get_h() - yS(40), get_image("preferences_bg")); } void BlueDotTheme::get_new_sizes(NewWindow *gui) diff --git a/cinelerra-5.1/plugins/theme_blue_dot/mask_all_linear.png b/cinelerra-5.1/plugins/theme_blue_dot/mask_all_linear.png deleted file mode 100644 index 79ecf2474b6870b1385a187de3d003a404e6bd4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq!<_&g*{yy zLo9mVUfJk(*g$~o!GAv;1EsWkES!di4mCB&uFRgdQhDm6$y#k*9ettk?Xuf$9iQa2 z&GXHYq&NE`x9zu%+{y6#%fbRhC4ZMKObns163KSO({FF9O?jruQ1O2Du65gw@9kc} zbpfxMG(X(;8f5GYO!_DS|=%D)t371aY<@^y!@cx z=68DUo^w8&b2#S!|48h`$yzJ5Z_o33ic!1GsGB0)9LA<43KTg+q!k!V4L6UC(e5}T6lG4lw1q*c6uAV&L09-pXKN?Z)x(JFS z?-*k~)Ifzo;W^1i0Dh31sb{pbVr*KXLxoH|he3B*@pn#(xb@DIuZ~nMMChI^EiDbt&CR*6 zK&|x@$;V-~mW%;l{}&|psP##b^X;JNbUF&)au5U$dj>B&;I@d2I_F-r3+nIhzXIT` z@B1&?`9y%wH5~zv4hyi>jsv)vaIg=kq6&Qd28@n3YZ?w>zmVQ&EKyz|U^bPHM>5IX9z}DgZ$9?l-H~ga2Rn Y151L_j#e-%IsgCw07*qoM6N<$f&u3`00000 diff --git a/cinelerra-5.1/plugins/theme_blue_dot/mask_button_dn.png b/cinelerra-5.1/plugins/theme_blue_dot/mask_button_dn.png deleted file mode 100644 index 80cb7a6204d6cd5e23cc10a22335b256cec4e4d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 539 zcmV+$0_6RPP)OI4A|fE5qRUeiRmFW+ zlBj(TjtIu_POTG}iTi-Ntx$nXk|cAhCU6Hcdku~V{)~6V@lGj)Qa<_w5jjYenMHrKgg8+zi-gFR;KBbQVPR2&^`R$L=Rv{KBrFr zO8G#40DYEZKSu!~lGf(F%V(jmRJ~}NdvJpU_oHpj#EwMr7_vKg##=&fBF~ dZ;Nvt{|nRL&yOb6e8vC(002ovPDHLkV1h?)>-7Kt diff --git a/cinelerra-5.1/plugins/theme_blue_dot/mask_button_hi.png b/cinelerra-5.1/plugins/theme_blue_dot/mask_button_hi.png deleted file mode 100644 index 88ca0fffc6696ee6fe6686e502d68d5f29270823..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 543 zcmV+)0^t3LP)7XR0uU+MQY1N**?`3Y z-}HQ`kB^V!KUjNqq1J*_kc0$wlIeLq)^ryviPkEuHEOL0O-PbJW?~1u2NAyO;2T&H zmvv=X7X&zya9|tA)4kRzl86ZGGrWC;{<>UPFDq%Y^^PO%hpgi$MPzciw}T~dnb3$% z-}+Sfz;1jAC<5;(g95`-YmIeXNc%bTt9WUidmsZ`N?};v#q%Y<}}hbwph|9xc)aW}=Y zb54%_^4T+}v13O}uxG3MoE9bt4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9h`{`~k@&nCs77A0Yo^bP0l+XkK Dy?HOP diff --git a/cinelerra-5.1/plugins/theme_blue_dot/mask_crv_linear.png b/cinelerra-5.1/plugins/theme_blue_dot/mask_crv_linear.png deleted file mode 100644 index b82dd90e1e20b00b3ba645ab68a0fa96b0c2ce0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 510 zcmVg3ktynmo4HyNa5UfYz%02l9|BT<+S(Q@11)e7uf56 zOPZLx_isdG0sthBlO*|4*Q1SI7ny_*T4vS)FmBQlH8BBD5rK#_4%5g)@+*KPfTf7c z?**La`3ZoB&bdeJcKd*&dhg%X^=0dJAW4!R0Ny+2#zj#)*b2_Fth-n&Zb?25A^h9~T`7dH zAo;8;%bP6Ax_{T!4`dWVI8s#skOO#9!ybhYURU|=T%M|mnMo8ykG=P-OHESDOjQ5f z>N>bjGFMfYSvO77^KH;So14SUBb;QVH25 z8lpwCv$0X+a-f2G;Gv>uI1uB`hFC^hBVs9tgNq?j~npA^2A_ zZ|D2wvCISh=Wj6)EilRNL`jX_~Fbv0jhB0PIM4pMra@;=tJT^uQ{3zIR!F`sl}evxi3^3oM*wfEwJTG_Q55;s+B*RDM^WU@ z5=T+wlU#Dn-JLu?IUx5)7UX9h16Y_Q7LiTo+%Z)Zk_N!;#Et<#RmEC62VmY9bE(tm zBu-}>$EQVP-t)X&*4p3ZVG^p6G^z?~?eR<|Q|flRui`j98w9~~0BAHC3zbxa*;05HZJ6_KkV@)f{ml7|4?&gF8Kr#;7+VgRVsYMRgI4+5AQ3Y4y!`dYs3$B&KUqp0L#_) z{_uD_egxoHM2aMz12{3pJl-3g&*vQgpMxOyQmfUzipaz{_jWJX81qy_nrWK8U#~3| zi+3cO#+YaKhOM=I0B7}j{d&FDXf(b9IJegJ?gb}FQUvfapU;2T>}4{U0e}}#6ur6= zOj1Y=NWLkT%Re^zl}hC&fR2a^NN#;(Tj3;0ssM7+=``APq96!90nj*(121?u96kil zQ`L62+jYBO5g~xKi1a6uN$y5C48u}3o4q1=n5Jod7rHLz+yTkLY&QEAhGFT?-h++o zg>&vyRRur<;K?oag>&xpw)|gLp{io7_4@1Gl;1pYi)5s#AldS8@0$M?>lZ`Brg|&~ R$@TyM002ovPDHLkV1oTH;a~s& diff --git a/cinelerra-5.1/plugins/theme_blue_dot/mask_pnt_smooth.png b/cinelerra-5.1/plugins/theme_blue_dot/mask_pnt_smooth.png deleted file mode 100644 index ed476ee2b8c7bc95e32bbf8ca577da949457dc26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmV-60?GY}P)d+tFwj z_^(1zKID1MS)3$^l=9mmas&V*`$>|V)OoIiZd~8zAH$Q+mr8Hf_uHkTTj&phzZ{4F zfOBqxJA|r?UrOZs(~U>Cs4 zIF2u>giga2%s|>jjk;X_TJx7)sJx;e-D9^BsnK} z7DdtRrNPFS7J%arw4`HeZEGp;U@$Nww@KE5jWKUXJ|H>wZ0Ep@MxzPfXSdt^RtIjk z+g|}(zNlEmeJ|syEX#-Kql@{Wk!-ul83z$WT>V)>@;gDS%rw?4gLcl%FGh+-$?kvGvwf|q#Z$e42xS@M4xc~qF07*qoM6N<$ Ef>?*|hyVZp diff --git a/cinelerra-5.1/plugins/theme_blue_dot/mask_prst_crc.png b/cinelerra-5.1/plugins/theme_blue_dot/mask_prst_crc.png deleted file mode 100644 index 1818cd09570ecc893d7193147b36ac5b0b95a358..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 581 zcmV-L0=oT)P)1*lAXHA2P+4a`fOP@|iQWwo1W`wRf_2B8_l9Oqx?FN+r_W#Q?#z6enVnsDke4(W z<2c?Ik)f)#MPwI1Rj)jvnYy=I-SnHs_|A( zk|Zr_?Kf2&0jY?5%Jcjn%d(v;%XacSKTy>ZAOqf8YriH*(yDU8>VdWPGw>2vI_F;9 zQSJg*#BuyZMCQPuwe}9xP8i)#4~x>NrFkW{+< TNB=Iu00000NkvXXu0mjfkaz#= diff --git a/cinelerra-5.1/plugins/theme_blue_dot/mask_prst_load.png b/cinelerra-5.1/plugins/theme_blue_dot/mask_prst_load.png deleted file mode 100644 index 649cda04391018c44dc194618b9fcaeab345eef8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 285 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TMdAc}; zSoFS~V#s&MfX6jnklX!_dSh=&^W+~LJ*l25iFD> zk#RzdaVe!#1Kt9!fv1IZ3!I6_5zwsFYQLv4ZZsOtOQq7Dh~z*vAu$CGoO4^%YW43} z;~3+MUaxm7B1^!Xi0lI`Gy7SoRBiy;?e@HgyfL$Nzyou@FEd-M*Xw`!UQdR?t9~j> zPgHfodw(?|%j;tO2qEkO-+&bn`3QXI9~vsv%-#ctNOg?q5P6??qXd>_4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T+c)B=- zSoFS~ypiva0gsEmDEIt|c&6w>Zu^hSKf%%6tg~Egp{}#)y-7!c&P|`pEF&eTsZ?~| zSvxY2A+q22WcGzWKRqX;Fg2XKB9~Ub@!Zyz;VRVy>lhy_%U=RCIGtN<@w4e!%r-9fz?^4qZ}fY=R}NWZn6v0btc0q_KkIjK k5=#Z;N^d<*FRrnPyVYX5VS1*C4$!>}p00i_>zopr0J>sqF8}}l diff --git a/cinelerra-5.1/plugins/theme_blue_dot/mask_prst_sqr.png b/cinelerra-5.1/plugins/theme_blue_dot/mask_prst_sqr.png deleted file mode 100644 index 9ac6cbd3f381016a32dfee55abc85754b3f87f5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T?JzX3_ zEP9g@Bv=CubexIYSM#&pi>JG%r)BnWmrlnY4BU#dI~i}(co~cLOW9<7SaFa!(cs#q lrb|J6jg4)3a;yam46^sRC33f^Oa~gr;OXk;vd$@?2>@t_J01W4 diff --git a/cinelerra-5.1/plugins/theme_blue_dot/mask_prst_tri.png b/cinelerra-5.1/plugins/theme_blue_dot/mask_prst_tri.png deleted file mode 100644 index 2cea21dac3a1b86d7e1d9897dfb5a27d66eb1873..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 496 zcmVfDEYH%PBI#q7UU}A=jZhcVjy5IXhzC{)M*Q8~PnbTV5)9z1Az&;QW zfYmh1l4i*mvk2S)c<-0vIKCa1QE9;5`@OD-$YGkySg_VQFCqot1$YJ)thI$dgGFRF zv}fVqoI4ns8#T1n7Myd}BGPQNS~Iy^F6neS_rSDLYNb>v-TcbfIkywq<7&0qjH2jW zM9$M#4+U$jSAab5oFqxD8&K*Tcm(E+F+;E3DB~~NlXAKI`t>u4qId88S@_(a2yCrg z6Okq0DVxpK`sYcKTm4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TYJY5_^ zEP9g@Bv=Cubodwj{PdKUhll5D#1boIWo2y-qY9wNf6pQ*W@hJ<6qPnhpCwX84;Zo~ zCJV{jXlew3RvF(T5q<_eiEIllw=kSl%D?j9VUB^0?qVSC9*>h>BMY4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1V4db&7< zSoA)a`S1SkSvluTAP? z z(op-JmUsO70mFhv@7~UlFEi|_iEzn!AX-uQy=s-*q+%JT9U>FOEM(TNes%15?b^qi zbmVuhvu2euYprWxT(#;K!@V-T{`YqGua{L@)CS!7D^+p+X!wemmHq1{*-hM8U>x}) b{WI$hk65#ch5`j(Krnc^`njxgN@xNAfrgzM diff --git a/cinelerra-5.1/plugins/theme_blue_dot/mask_pstn_nrm.png b/cinelerra-5.1/plugins/theme_blue_dot/mask_pstn_nrm.png deleted file mode 100644 index 5f341f43f42f8cbb89a30d204ef286ccc036ec26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1V2JY5_^ zEP9g@Bv=CubexIYSM#$zr7k5!MVVR7VM|p>>k@{Ny*^K*TsSVANtkpMbK5# z2j~OzO|wWg@g|D^No%2KwW#abL1as|ESi!@&YUi2O7bP?00WRi&NpZNb5jQg2f}BD zQtH;4$Y-|zU_S*br!i&>7ZF4R@BR4sQ-|CFmoQ@tT5CX&d+@%52u3TQc+d0v|G`>o zthE?p@ZNLKNoeh-{PiKH8+$-ls42d@U*XAvfR%>5cAIMkmKrOis8lK#V@O6BulEw( zv>nHBNWB)ZG$&NF?DA0#Zyr0jg5`0+`^OjI1;y}xep^!1Zb#*4QxuUdw+r3SzL zFw5qupRt;`TQG&hqyxvQA*)n{)JvHe+nCCk+f*=^nG6rj{Ip`$3Y3Hmi&hzwfKxl=2oTC+3 zqYxl>LMi9Yqbi5pdEV`xu(g)(=)S#jIM@;jiq`%m#{S-2hvP4$Tc6&1Cmsc=a70u>NH+7=n5yX z$2pJpegZBssK}5EE zs=``xTM7|jrD6GQQ}g2eDQeEqtOr*Gryz-+z{Lx_LCR>*Uy2BZYy_oN}s;sXq6GhQ=$KLE9TI<59H09q; z!rnha+D9q9iyXvLj}#jX&*rM);Yy8Wvq>0++#I*S({Se;S)P+-t_XgSaoq?im2vI9 ztBc&(n#%0aS`&pKVK8Y!Wy_kD?yhks7$zNI?2IYk&42D1{{ewG;yx4C3_$<@002ov JPDHLkV1iwF;j91v diff --git a/cinelerra-5.1/plugins/theme_blue_dot/mask_scale_chkdhi.png b/cinelerra-5.1/plugins/theme_blue_dot/mask_scale_chkdhi.png deleted file mode 100644 index 67770ea63fffe690d8e1acfc975b6cc3d67a2abb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 971 zcmV;+12p`JP)KhNg88F>18P5$_?$??9@3W5mCqA|Q~^4Hm%w;v|l zOy>Ol%Fztls&0V+-d&Wu8F*ej>+tLMfxWhZKnBQ0p>W*u?6#GE&Xu=k&>2km`MFUP z#Y&bHSXCL_M&4f<``rewPdr|YyIDd6oYnI%#aaqgC1?2fB@v1ig)_#p zbs@|ILzq^|q!ePTeS9_ZOy+?|;_~_nKcz&VKt$Gd%LX?yBLtY0MvNJe8d@dCEGbu0 z&pbj(j%Y&6N;Uy4xSm2xnVj<)Y-SjB6lGLKV~6SjYD$@uDk)`Dk_iSF8#2|9EibRY zV04?phY5^k4L~rf0cMbF;f&2gQ12q<$WF+ptb2)2gJ-sDWR&oK348# z6=y>u=Ozc;fOm^#V~{aYGKM!L!>b8L%@HpSg-)k~b8b~YzfP-`#5>`aZykjzxfoTP zO#-`ZPot=}&dbQ{U4_L7r|k(Z4wc@1mk`31E9CwJQB};0s;U^>R(u#HK3yknW*IS~ z9iZPz9PTFi-N4Sy4j}~YuLs~wcuI*F6IDv2lo#$1oPzg$)w>^?B9D%yrAt(mM#B*{ t#?W$P!Q=DrNieJ%&GNnpyuatM^&e*_*)?@~U`qf1002ovPDHLkV1iacxK#iE diff --git a/cinelerra-5.1/plugins/theme_blue_dot/mask_scale_up.png b/cinelerra-5.1/plugins/theme_blue_dot/mask_scale_up.png deleted file mode 100644 index 996aa58c830cf0abbcbaa34960ef981fa5b5663e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9h`{`~k@&nCs77A0Yo^bP0l+XkK Dy?HOP diff --git a/cinelerra-5.1/plugins/theme_blue_dot/mask_scale_uphi.png b/cinelerra-5.1/plugins/theme_blue_dot/mask_scale_uphi.png deleted file mode 100644 index fd91ee9b2347bccd4e403d9af038a04fbb4c70b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmV-60?GY}P)o5p}zX9cE|69y1Y5{$aEhmlJdz0|u<6}G; zU>NCkyA=l^X+F(_WKmkX^mB7@!+a%Fe_(`?n+0XIV=Jr01) zjO*o$yV0W)(TN^ModOsKO`JjkH<2~IwH@?=w?;&;e0@DJ{5!S*fG7&E(E`I~zxs=y zcU9~qV3KI9VbVX#|C6%}fL!Hg?uMI>>BqBdUI~*8-j$;jz>w6NE%+H#g_+s<@;UIn zfkhiw&pLfKYF!kQ>S3B6fzCxLZ0!09{Ol#K0k4CTgbhO(YB+MKS0XdXDv+?M-K{4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1Tkdb&7< zSoFS~WLR{_K*05X)lLVlSuqD){hTs;bG`=@G?oMuF>+msUTvsq$yLx|B9f=6q|ZCA zP^fZ-=R}jbyRUlpm6fsf^!%|ejrDg;F@55iqO5e@*{)Nz>iuScLoW~B4rg$G|JO!M z{r+wq#hg%6W`?wT{7YA@QeQN6)jO9IwuFh#f4V-XJd+AH!`t*Y{xl){|A$8ctjRPwovBF|&IT#i@oOnjqH2wc1r^*dSoVtk;;(Z-qaN$dEHmv6i0x$iEP)LoK~y-6jg-4i!!Q(vKi^^yC@?S}2AJps@Bb_)3n~mS1gRBG zO?+dhY$y_u*fsRj2k$*8CB|_irBu(Qlt?Kt#-O!E zO8I}VbB?dCFTD5F0e}z!r4&jjLI@S!G|h2v&Kc(%tJRA2dQAvn2PTB5PIAtqlt?Kd zguoax4R+4)`T5B(48#~Q#$c_jP$2|4Z%R_2DJ4P(Xsr=K9D<#548u^Nr>CbhO;e%! zCZ*g_J&q$y)6{=u@$S86y8wh1ASQtm|Iy|3>QAcVj;j(G2DG5%_&{n`{~ zr9EX)>%9lqfyNkle}A6@zP-KGdnG+3HF7&oQpy_sVzJ=q>FKCaDJ5Ok(f2($=bDAJ4ACxCcIuKRL#K znbw-y+gq-$uQ!UfD?HT&|1lv1T5md7E2Zjao}Zu7wk>_%^YQTkz-%_dTKg-=IY-xZ z09;*NF`LcmWJ;hGtt^$Bn;Y)#?l8u%SS%(LE|*KR*4*FU^Z58!3ooVIOrBB-t#uvG zoHK3Pa&~q`-}gsDe|UJHZCiv8^)7%Y`#7ak7f)F%$MRiP=gG+l)>^#xjN|x|Gu;|PFE$Jw2xcvmG^OVw# z(n)ZE8)NFA#2Bli5=Gf+zd diff --git a/cinelerra-5.1/plugins/theme_blue_dot/mask_scale_xy.png b/cinelerra-5.1/plugins/theme_blue_dot/mask_scale_xy.png deleted file mode 100644 index 96febe1d2068638b129bd29288de45ba9eee4dbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 677 zcmV;W0$TlvP)P(lkBX*w`3eHQ70rs_I%%6b;~>G3IIcEt%*d@;PS3Ocy{^2T79r40R+d%z}6M9EgGUVeYdq<@gFL`{%;{kf$>4 z^?Iw$x%=g~nkh3f@Avx;oO3Jx6po^(ndf;c6g9?lXKkp6Y-U;340Wb5w$|>e>avIo z_`6Y^fKxW?s_LeQd^5&8nJes^OY=Pcjz1u!)3CW0-v-J^#*2%KcdGyL#O4)6@u(sS z@XT6!TU7^JTU)2_J5v$a^iE4&Ivfrk0*7TG%($A>SXIw~izG>Ylton?i^zqDoT=)c z+fPI$a-MLksw*P$4mgOS=-40e3HZBW57=|grGAx7Rb36a*8t!b#y#_uI^emi00000 LNkvXXu0mjf+@dtA diff --git a/cinelerra-5.1/plugins/theme_blue_dot/mask_scale_xydown.png b/cinelerra-5.1/plugins/theme_blue_dot/mask_scale_xydown.png deleted file mode 100644 index 0dd09d7987a2838d527a1a96e2c109f1d594aa9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 831 zcmV-F1Hk-=P)pBocm)i0pAr7HZaRN*j^Zy^i90r&HCS^N* z$i8qZar|{W2!g+sp|AZIh5>6WecxlP_2VLfh!BP$ zT5Ck)|AX7MrRzF|VelIOD5VI3fFKAk#&~!XMSp{xbF^(sUDq^CgE3|XQ%dA<6-knKs8R~&zAc%c#u!eglTYUP`FRd*+m_Smgosd< zC3Ri%_4UPKu^>%TR;v|@#R7o7@2RSavMi~p%Aex?{{EjA)9%AC&@|0VuPGzv+=WTb zIgBwgW7q4oKal_!W9a*yVHj90mnfxXld~)%j$=O-MG@QWmNZTOWhlaWz4qm)r)-B| zm}xr<1Dnl;_xE=I4u``m zT)@wv`~BY6wTO6W^rRQy-A~ihPuT5tIOoXo-0Pg@Is5&dEXx46y}c!hB1FW?sNuWt zMFi&@N~w#2p8!Qs;GCO50g@ykj^pcKYpu`zx9IyGU{(p|>(4_6LEx|EIF2~y=(^4u z`BPI7xzN1pI<(fraqLg60dLv_F3S>YEm@Xb7&XNNe|&tTC<=@*zEnlz8yo}yT5EqH z%Chw3_tU7KhK6D2Z|F4cH5L()B=LiFUHgSumd&7391aJ)L-$o5gWV9LK&^ zC)xVGr|UX@jf;hP<>~2(x~?gTf~ILa zM_qgKoO6uh=$rf0kEefAZ`S(v*X`4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1Tkdb&7< zSoFS~a@LpGP^4vlr-q`JaE|^QvroS^guAeqPEh(G$a_Pq+Dm_7$AY&B{Qb^MQLbIr zT^=zc`T3vEf7W|!+QaioEgO6^uP*(pB{J8$ia9MUtnz(%@SMntWiL4+7>YghRp)p< z6gVU#;a(6b81_v^D$x zL-zV}YL6QpGi{hzI%!+`u1O)xCcc~Pj_y6dIs0bwlC?{I>#P4}{cFH8-7?RN>wT^M z%U?V6Gp}xY`}^i0hI2c4FZ4#OKezMUm70wP4Kvp^$o}Sd=Vfu!L-XqWpD*g=?HC?T W3YR~qX`cfO1O`u6KbLh*2~7ZR375eD diff --git a/cinelerra-5.1/plugins/theme_blue_dot/mask_scale_ydown.png b/cinelerra-5.1/plugins/theme_blue_dot/mask_scale_ydown.png deleted file mode 100644 index e01f4eabbc896288f028e5747407696191af6e89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 731 zcmV<10wn#3P)APxWOc3W;FUrw9th7ytijd=xYY#yFT{ zoWAW-mx)o?-GYIky6bdx-C7>kW3U8X`cW^0%zVBJD*KD_2VvKvR^?HqnFdmO7 zrI2$b=ZuKpz5f~9_dW0L?`$?3Qc8I5Y1an2zkpCQ|Y zZZ;c*9vvNVe0)sPG&tv2EEdEVNhz^dEHu6qJ`4k;lzni{nGgco?N*^}+o~6<)rz;b zH#O?Ij;`x4#vmdJ3?b;h0f;d&3tN|w;=?8 zJt)9(xnw$>GM~>?H=oa$PNyuF%e}*PL*sU{Ym7Na!o|hKfw!a4h|y@Yrz@o>SVK{- zVy)eS{;SlOD_BHS`M==Wkw1cWOXhE-+V34?t<~22UvSM0uwQOTutLSPsM4T(nF7(>%E`dMpLcX@ev5Q6LLYfes1zJv@&^W4V=8pR$Z`Mx N002ovPDHLkV1lWuN1p%y diff --git a/cinelerra-5.1/plugins/theme_blue_dot/unclear.png b/cinelerra-5.1/plugins/theme_blue_dot/unclear.png deleted file mode 100644 index c39158830771c321179e19cbb35789edd6aa1bed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 557 zcmV+|0@D47P)bo>ezhBpTZGsTOURjn?08foEha`7M?x^Y! zfM+D9RP`Cn1DW0B-=OwYKfOe=Q;n5ox4p`pR0{20&GPI~t8n@;py!jq^ND z7K_D40QUiajA2m}U6LbrY^m@G?b^RORZ(sTb|1f?54vn>T8&O3S00000NkvXXu0mjfp5E)* diff --git a/cinelerra-5.1/plugins/theme_blue_dot/unclear_dn.png b/cinelerra-5.1/plugins/theme_blue_dot/unclear_dn.png deleted file mode 100644 index 80cb7a6204d6cd5e23cc10a22335b256cec4e4d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 539 zcmV+$0_6RPP)OI4A|fE5qRUeiRmFW+ zlBj(TjtIu_POTG}iTi-Ntx$nXk|cAhCU6Hcdku~V{)~6V@lGj)Qa<_w5jjYenMHrKgg8+zi-gFR;KBbQVPR2&^`R$L=Rv{KBrFr zO8G#40DYEZKSu!~lGf(F%V(jmRJ~}NdvJpU_oHpj#EwMr7_vKg##=&fBF~ dZ;Nvt{|nRL&yOb6e8vC(002ovPDHLkV1h?)>-7Kt diff --git a/cinelerra-5.1/plugins/theme_blue_dot/unclear_hi.png b/cinelerra-5.1/plugins/theme_blue_dot/unclear_hi.png deleted file mode 100644 index 88ca0fffc6696ee6fe6686e502d68d5f29270823..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 543 zcmV+)0^t3LP)7XR0uU+MQY1N**?`3Y z-}HQ`kB^V!KUjNqq1J*_kc0$wlIeLq)^ryviPkEuHEOL0O-PbJW?~1u2NAyO;2T&H zmvv=X7X&zya9|tA)4kRzl86ZGGrWC;{<>UPFDq%Y^^PO%hpgi$MPzciw}T~dnb3$% z-}+Sfz;1jAC<5;(g95`-YmIeXNc%bTt9WUidmsZ`N?};v#q%Y<}}hbwph|9xc)aW}=Y zb54%_^4T+}v13O}uxG3MoE9bt4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9h`{`~k@&nCs77A0Yo^bP0l+XkK Dy?HOP diff --git a/cinelerra-5.1/plugins/theme_bright/brighttheme.C b/cinelerra-5.1/plugins/theme_bright/brighttheme.C index af0a1565..c6a9eb3c 100644 --- a/cinelerra-5.1/plugins/theme_bright/brighttheme.C +++ b/cinelerra-5.1/plugins/theme_bright/brighttheme.C @@ -44,19 +44,11 @@ #include "vwindowgui.h" - - PluginClient* new_plugin(PluginServer *server) { return new BrightThemeMain(server); } - - - - - - BrightThemeMain::BrightThemeMain(PluginServer *server) : PluginTClient(server) { @@ -77,12 +69,6 @@ Theme* BrightThemeMain::new_theme() } - - - - - - BrightTheme::BrightTheme() : Theme() { @@ -124,7 +110,7 @@ void BrightTheme::initialize() resources->menu_title_text = 0x000000; resources->popup_title_text = 0x000000; resources->menu_item_text = 0x000000; - resources->generic_button_margin = 20; + resources->generic_button_margin = xS(20); resources->pot_needle_color = resources->text_default; resources->pot_offset = 1; resources->progress_text = resources->text_default; @@ -137,14 +123,14 @@ void BrightTheme::initialize() resources->menu_down = 0xc0c0c0; resources->menu_up = 0xffffff; resources->menu_shadow = 0x000000; - resources->popupmenu_margin = 10; - resources->popupmenu_triangle_margin = 15; + resources->popupmenu_margin = xS(10); + resources->popupmenu_triangle_margin = xS(15); resources->listbox_title_color = 0x000000; - resources->listbox_title_overlap = 20; - resources->listbox_title_margin = 20; - resources->listbox_title_hotspot = 20; + resources->listbox_title_overlap = xS(20); + resources->listbox_title_margin = xS(20); + resources->listbox_title_hotspot = xS(20); resources->listbox_border1 = 0x000000; resources->listbox_border2 = 0xffffff; resources->listbox_border3 = 0xffffff; @@ -157,11 +143,11 @@ void BrightTheme::initialize() resources->listbox_bg = 0; resources->listbox_text = 0x000000; - resources->filebox_margin = 130; + resources->filebox_margin = yS(130); resources->file_color = 0x000000; resources->directory_color = 0x0000ff; - resources->scroll_minhandle = 24; + resources->scroll_minhandle = xS(24); new_toggle("loadmode_new.png", "loadmode_up.png", @@ -401,7 +387,7 @@ void BrightTheme::initialize() resources->bar_data = new_image("bar", "bar.png"); - resources->min_menu_w = 96; + resources->min_menu_w = xS(96); resources->menu_popup_bg = new_image("menu_popup_bg.png"); resources->menu_item_bg = new_image_set(3, "menuitem_up.png", @@ -545,18 +531,18 @@ void BrightTheme::initialize() preferences_category_overlap = 0; preferencescategory_x = 0; - preferencescategory_y = 5; - preferencestitle_x = 5; - preferencestitle_y = 10; - preferencesoptions_x = 5; + preferencescategory_y = yS(5); + preferencestitle_x = xS(5); + preferencestitle_y = yS(10); + preferencesoptions_x = xS(5); preferencesoptions_y = 0; // MWindow message_normal = resources->text_default; audio_color = 0x00ff00; assetedit_color = BLACK; - mtransport_margin = 20; - toggle_margin = 20; + mtransport_margin = xS(20); + toggle_margin = xS(20); timebar_cursor_color = BLACK; new_image("mbutton_bg", "mbutton_bg.png"); @@ -611,23 +597,21 @@ void BrightTheme::initialize() setformat_w = get_image("setformat_bg")->get_w(); setformat_h = get_image("setformat_bg")->get_h(); - setformat_x1 = 15; - setformat_x2 = 100; - - setformat_x3 = 315; - setformat_x4 = 415; - setformat_y1 = 20; - setformat_y2 = 85; - setformat_y3 = 125; - setformat_margin = 30; - setformat_channels_x = 25; - setformat_channels_y = 242; - setformat_channels_w = 250; - setformat_channels_h = 250; - - loadfile_pad = get_image_set("loadmode_new")[0]->get_h() + 10; - browse_pad = 20; - + setformat_x1 = xS(15); + setformat_x2 = xS(100); + setformat_x3 = xS(315); + setformat_x4 = xS(415); + setformat_y1 = yS(20); + setformat_y2 = yS(85); + setformat_y3 = yS(125); + setformat_margin = xS(30); + setformat_channels_x = xS(25); + setformat_channels_y = yS(242); + setformat_channels_w = xS(250); + setformat_channels_h = yS(250); + + loadfile_pad = get_image_set("loadmode_new")[0]->get_h() + yS(10); + browse_pad = yS(20); new_toggle("playpatch.png", "patch_up.png", @@ -855,8 +839,6 @@ void BrightTheme::initialize() new_button("stop.png", transport_up, transport_hi, transport_dn, "stop"); new_button("stop.png", transport_up, transport_hi, transport_dn, "stoprec"); - - // CWindow icons new_image("cwindow_inactive", "cwindow_inactive.png"); new_image("cwindow_active", "cwindow_active.png"); @@ -875,17 +857,12 @@ void BrightTheme::initialize() "preferencesbutton_uphi.png", "preferencesbutton_dnlo.png"); - - new_image_set("color3way_point", 3, "color3way_up.png", "color3way_hi.png", "color3way_dn.png"); - - - new_toggle("arrow.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "arrow"); new_toggle("autokeyframe.png", transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "autokeyframe"); new_toggle("spankeyframe.png", transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "spankeyframe"); @@ -939,7 +916,7 @@ void BrightTheme::initialize() recordgui_variable_color = BLACK; channel_position_color = BLACK; - resources->meter_title_w = 25; + resources->meter_title_w = xS(25); } @@ -975,30 +952,21 @@ void BrightTheme::build_overlays() } - - - - - - - void BrightTheme::draw_rwindow_bg(RecordGUI *gui) { // int y; -// int margin = 50; -// int margin2 = 80; -// gui->draw_9segment(recordgui_batch_x - margin, -// 0, +// int margin = xS(50); +// int margin2 = xS(80); +// gui->draw_9segment(recordgui_batch_x - margin, 0, // mwindow->session->rwindow_w - recordgui_status_x + margin, // recordgui_buttons_y, // rgui_batch); // gui->draw_3segmenth(recordgui_options_x - margin2, -// recordgui_buttons_y - 5, +// recordgui_buttons_y - yS(5), // mwindow->session->rwindow_w - recordgui_options_x + margin2, // rgui_controls); -// y = recordgui_buttons_y - 5 + rgui_controls->get_h(); -// gui->draw_9segment(0, -// y, +// y = recordgui_buttons_y - yS(5) + rgui_controls->get_h(); +// gui->draw_9segment(0, y, // mwindow->session->rwindow_w, // mwindow->session->rwindow_h - y, // rgui_list); @@ -1006,27 +974,21 @@ void BrightTheme::draw_rwindow_bg(RecordGUI *gui) void BrightTheme::draw_rmonitor_bg(RecordMonitorGUI *gui) { -// int margin = 45; -// int panel_w = 300; +// int margin = xS(45); +// int panel_w = xS(300); // int x = rmonitor_meter_x - margin; // int w = mwindow->session->rmonitor_w - x; // if(w < rmonitor_meters->get_w()) w = rmonitor_meters->get_w(); -// gui->clear_box(0, -// 0, +// gui->clear_box(0, 0, // mwindow->session->rmonitor_w, // mwindow->session->rmonitor_h); -// gui->draw_9segment(x, -// 0, +// gui->draw_9segment(x, 0, // w, // mwindow->session->rmonitor_h, // rmonitor_meters); } - - - - void BrightTheme::draw_mwindow_bg(MWindowGUI *gui) { // Button bar @@ -1034,15 +996,12 @@ void BrightTheme::draw_mwindow_bg(MWindowGUI *gui) gui->menu_w(), get_image("mbutton_bg")); gui->draw_vframe(get_image("panel_divider"), - mbuttons_x + 228, - mbuttons_y - 1); + mbuttons_x + xS(228), mbuttons_y - 1); gui->draw_vframe(get_image("panel_divider"), - mbuttons_x + 294, - mbuttons_y - 1); + mbuttons_x + xS(294), mbuttons_y - 1); gui->draw_vframe(get_image("panel_divider"), - mbuttons_x + 396, - mbuttons_y - 1); + mbuttons_x + xS(396), mbuttons_y - 1); // Clock gui->draw_3segmenth(0, @@ -1071,10 +1030,8 @@ void BrightTheme::draw_mwindow_bg(MWindowGUI *gui) // Zoombar // gui->set_color(0x373737); -// gui->draw_box(mzoom_x, -// mzoom_y, -// mwindow->session->mwindow_w, -// 25); +// gui->draw_box(mzoom_x, mzoom_y, +// mwindow->session->mwindow_w, yS(25)); // Scrollbar filler // gui->draw_vframe(get_image("mscroll_filler"), @@ -1117,7 +1074,7 @@ void BrightTheme::draw_cwindow_bg(CWindowGUI *gui) { gui->draw_3segmenth(cstatus_x, ccomposite_h, - cmeter_x - widget_border - cstatus_x + 100, + cmeter_x - widget_border - cstatus_x + xS(100), get_image("cbuttons_right")); } } @@ -1146,15 +1103,13 @@ void BrightTheme::draw_vwindow_bg(VWindowGUI *gui) { gui->draw_3segmenth(vdivision_x, vcanvas_h, - vmeter_x - widget_border - vdivision_x + 100, + vmeter_x - widget_border - vdivision_x + xS(100), get_image("cbuttons_right")); } // Clock border - gui->draw_3segmenth(vtime_x - 20, - vtime_y - 1, - vtime_w + 40, - get_image("vclock")); + gui->draw_3segmenth(vtime_x - xS(20), vtime_y - 1, + vtime_w + xS(40), get_image("vclock")); } diff --git a/cinelerra-5.1/plugins/theme_bright/mask_all_linear.png b/cinelerra-5.1/plugins/theme_bright/mask_all_linear.png deleted file mode 100644 index 2986a690434a05c3727bb46f524ee4e40d94d4bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1Sxd%8G= zSoFS~e30vqfq={WM_J6Y` zvj0lSpHc2G`^}PravUeinRl@A9T40xjoUi$vYo6#CWG0@MK*>ng`Z|QFxxcr&G@$H zprd~kQ{I7_Oq-kbw|PAXyxIY;t`eSgY`O4{vS2TW3uwMdv|KZ_I&Pt#rxx%)ta0+=G%eJXYh3Ob6Mw<&;$S% C^?1Sn diff --git a/cinelerra-5.1/plugins/theme_bright/mask_all_smooth.png b/cinelerra-5.1/plugins/theme_bright/mask_all_smooth.png deleted file mode 100644 index 088fb31ba6576f082eb4ca68a1133770f6256198..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 527 zcmV+q0`UEbP)p!Hn*!ILJ;Al4qZLj;Uccs?V;OIay` z?KR*MNCN}5S6%=mb;*pDG@g=1-{NUikxJlA6P^bKog9|tHEJ3P$F5(FlQmhdegF$D zq$9v5aHmUDHY~a>Goh}?5KypRY{MF`ts}J%D|xMAcH9jHW?f^xiPirhu&jws1Lt0( zPPhW5TznHi5s3bV_yLI6_CmmlBGpSvgEG*q)-hlMvzcd@S_W(RJO`vP`(;e=KLI&l z3mCP<`kOX|JTQq_-`A$>oFJRNKeBexsZdq{?pw)9hXkfRy=VU$zU%x?@dZ*QaQ@C! R<+1<(002ovPDHLkV1kz>)!6_5 diff --git a/cinelerra-5.1/plugins/theme_bright/mask_button_dn.png b/cinelerra-5.1/plugins/theme_bright/mask_button_dn.png deleted file mode 100644 index 8f117f2a6fefffe1887ab8d143054a2cd271bd70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1U7JzX3_ zEP9he0s?-VcVIr?!tE?6At4cw(DVEI`{1JvuCA_ZY;01yDy}>TY4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1SnJY5_^ zEP9he0s?-VcVIqn=)i#k1^@rmu98}{V#SFAE}_B`53D%2n5|#RChG%;F_~Q=Gjt{s ZLvk?d>(JF%GC(sJJYD@<);T3K0RWiTI#K`t diff --git a/cinelerra-5.1/plugins/theme_bright/mask_button_up.png b/cinelerra-5.1/plugins/theme_bright/mask_button_up.png deleted file mode 100644 index 830d9b3c97d4d5209b50e2cf76f828c17d4eb174..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9jw{Qv*Io=u8DElR>F>%)qJi`n|6Y(Na)iZdy`njxgN@xNA D!w)YB diff --git a/cinelerra-5.1/plugins/theme_bright/mask_crv_linear.png b/cinelerra-5.1/plugins/theme_bright/mask_crv_linear.png deleted file mode 100644 index e9dffdcf892f314af72563249156b3017505a9ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 342 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1Spd%8G= zSoFTVZ0N`2DAN9MzP8~)#kd14EXhrr>KC{^ywcrBBm1$81vjq~S zF>c@Rz&p-p=Fk1_-{zHBe2#ySAi64eSw-vofYVdjbOPtNUaJ?||JeG<5}iW+(3r(y zRl7R*MV9vIZ!!BeE8@YokjysmFW=|zerP)#e8hQ=+pNzEo0FIRd~L>MRJwcq$_ZR< z6@Dkm43Ay?cJN#L#bYwxfA|R0Kj6E3K{~aM-6m<8LfO8FKrC!5%q*>xB5Lvm zlogSeLrGaED`lsU9kUw7B!6CkiNzdsO?U2{v9OSD{WkY`e$P4QckaFX^V@txDoO#b zp$e_^WMWKUbh|M-p3=^@h{n9c)mKrAJg;FTZO3UW;}%7{geu|=OYHeulgkowcs7bGkO|@ zY>ashmw0F)xQy%2lSm#F_1WcH2+jv@CCz`2Y0QL%G^!DQIV!}BB7+?Iv4_qkq3gjj zAmLN~A|F;RV-d%=!feDdh<)5(E#jX~3vXlrC0yVLZ`hUmj;9|XkX4^$4rl7W&p*Z| XGIK@}NE?yj00000NkvXXu0mjf#}%!O diff --git a/cinelerra-5.1/plugins/theme_bright/mask_pnt_linear.png b/cinelerra-5.1/plugins/theme_bright/mask_pnt_linear.png deleted file mode 100644 index ac17b2517b59ba87f53921adc7ced86ab73bb35c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TEdb&7< zSoFTVv{8?xP~iB-^OqD_Vw@ID@hIU6&Y`8#+zO}tl_%e_XEd!%{XPw;M}l$rgI;sDdn&J!8C6} ztFKM+$K^|2GW?KX)iXH4wyp5$mf(nBz3i`-Z*#?M_$OV^ce(4kag15(yM%_FUHc<# zlJ@JF95($WY@@!z^WKKO!t_s;X*-SvidZ$X%dqU(eX9GX*}CYW_M?8^}vN;?m7Rt?6AYX3iOq!tlD@B)lSKb zMND96KhKWq{$K===art`#2~Xjz)ID`Rhq>Ej_?}l7(L9?0p)d$lgR!l&VCDR;t^Ak z-ZY-ETofKJ0UzQDmyzCQfN$Xq#Vuv%qm8NLVouuk#!L#EW5o*LA qyS$|DRX5WLCwH-%0Ici(i~0srkUnG0`j4jo00004nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq!<_&Sv_4G zLo9mVPI1gTWFX)=e^-XsSx+sYu-2lfaax?K7T9tJomOmMo}$dcDaQHo(0#8E&h$H` z%8`9*%>5sys1@)hKXG7v(>VEBT>8!W7S0chTO7)hw;qUE6S*t&lcYw28 diff --git a/cinelerra-5.1/plugins/theme_bright/mask_prst_load.png b/cinelerra-5.1/plugins/theme_bright/mask_prst_load.png deleted file mode 100644 index f4416298b2d8465560ede36b227dbaaca244fe26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1SlJzX3_ zEP9g@Bv>O3)H6v)P7z+%rqf&~$;Yk}VPf#;vzX8Wl_1%=_X`@?*o>N*LY!Yq3LJFW zcJM`;*@BZ3a}A1Gu09U#(EaqG(T~k#iK)=)&M7C9IX>*15#gP1^0U2>{QQGQmZh(0 qn5Cz7>p`G+u=+{Ez{3+BGBVWdwaI@cH+LP-5e%NLelF{r5}E*g?^J>S diff --git a/cinelerra-5.1/plugins/theme_bright/mask_prst_ovl.png b/cinelerra-5.1/plugins/theme_bright/mask_prst_ovl.png deleted file mode 100644 index 40e3e961d1195c8bd363461e28337606c995439b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 350 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TUd%8G= zSoFTVZ13mfC~*8^zu7IW2qmdz6*(vUge_MVYbvltozVTlASC_YMSsE6xnV5bvIiyZ zes}u2@1)7*{WEXgoVj$-BXjSWoB8}Uw8yS#{V&VE6*0e zv1XIqg~N=qA~>_#*7u*kV7F+Z_Z{wsx>2gTZXdBoI#+aPyFl)Ak6*slNpba7)Bg)T zZ`&nscZJ=wTRKVH<$}etgw2*X`Yb&-=dplv1aJ034(87f?|R>!vb1gCr`KjC_diPR s+4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TQJzX3_ zEPCHgGUPg-z{B8Q__8}z_V?qyGR>o2JyEX}zBpV+I48lhTDYOM%_Poy^6^tl2h=#- zH+`RJ!y{6|ed)Th(CUvXA`UICDRhaMRNk5U@X|GfS84_uMe{SVjvDAy3m!;$F6G8$ vrMW_N%c9QzU0++mR6eRZ+vWCMf6TJ)iBa7y$4%WphcI}$`njxgN@xNAo4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1SnJY5_^ zEP9g@Bv=CubR7Hdulsq1h6#syf?|sCM25r5O^QFRIJlUtU&=;+?Xi}&hVIjh=Z^vz a*clR1n3Yv}Qu%>qFnGH9xvX4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1U{db&7< zSoFS~?9JEYAmDOe&UD`KBLY(vm@~QdKNA;Szev!wDesg4cT>%=sbQBqm+$_yG|lis zI5RK9cj*UHPpxV@5S(iI^%jHrwgu}N$`yj&-(<*ViDu&d+P*Eoe*yaicB=!T+$*;? z9XY16EcMky2FVM?&(dBM3V-lB{<-O{&+g>d73&X6U(mf_{bc1|s|S1g776*QoL{MB zvcTqTG+)6)^A${fDSX-$&Xt$_k8%FIzBc-@QNb;ynspxz#b4n*eLSe}o7sg(php-y MUHx3vIVCg!049EV*#H0l diff --git a/cinelerra-5.1/plugins/theme_bright/mask_prst_trsh.png b/cinelerra-5.1/plugins/theme_bright/mask_prst_trsh.png deleted file mode 100644 index 9bc40e381f6bc7ed7425048ac83af5746f4057fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1UTJzX3_ zEPCHgdC0{ez{A#Wvt$0fD!Bs^+MO|(OYeL+`M}td%_Z`vmBbX=!k7ggUD}`MM2Tz= zYk%c&?pWIAnLSH`+jFY-=-0)_Se15sb+lpT+)>DJ*PV6!ab88q!}mV}tzhtU^>bP0 Hl+XkK9VJHt diff --git a/cinelerra-5.1/plugins/theme_bright/mask_pstn_cen.png b/cinelerra-5.1/plugins/theme_bright/mask_pstn_cen.png deleted file mode 100644 index 515133f6cd5db1d65e430b6869f3f672810e8787..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T+c)B=- zSoA)-vu zGm}zJoZR@jdyVx4uG{-Qh+fXP!mTBhA=h}VV6WBeJ|@1I$zl&4Y%Xk-Hq*QyB5r?ztuimCwafn@BLTno!{j{Iiy^LTRHUt lGw$8Wx1Z=)AT1jpci@eIrSsc$CxPx|@O1TaS?83{1OO1%Y^eYM diff --git a/cinelerra-5.1/plugins/theme_bright/mask_pstn_nrm.png b/cinelerra-5.1/plugins/theme_bright/mask_pstn_nrm.png deleted file mode 100644 index 40e987a8133e8f1c6a4bc57a39be04e47bd48b45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TCJY5_^ zEP9g@Bv=CubR7Hd?;s~DuvRWsQIo+{UznBcA*+e;j4K8zQTBJ6l33jDWvn{D=~l2R m;h<968&xmmauEXq1_l`h9?|UjJN`iP7(8A5T-G@yGywo}1~uLQ diff --git a/cinelerra-5.1/plugins/theme_bright/mask_scale_chkd.png b/cinelerra-5.1/plugins/theme_bright/mask_scale_chkd.png deleted file mode 100644 index 8f117f2a6fefffe1887ab8d143054a2cd271bd70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1U7JzX3_ zEP9he0s?-VcVIr?!tE?6At4cw(DVEI`{1JvuCA_ZY;01yDy}>TY4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1SnJY5_^ zEP9he0s?-VcVIqn=)i#k1^@rmu98}{V#SFAE}_B`53D%2n5|#RChG%;F_~Q=Gjt{s ZLvk?d>(JF%GC(sJJYD@<);T3K0RWiTI#K`t diff --git a/cinelerra-5.1/plugins/theme_bright/mask_scale_up.png b/cinelerra-5.1/plugins/theme_bright/mask_scale_up.png deleted file mode 100644 index 830d9b3c97d4d5209b50e2cf76f828c17d4eb174..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9jw{Qv*Io=u8DElR>F>%)qJi`n|6Y(Na)iZdy`njxgN@xNA D!w)YB diff --git a/cinelerra-5.1/plugins/theme_bright/mask_scale_uphi.png b/cinelerra-5.1/plugins/theme_bright/mask_scale_uphi.png deleted file mode 100644 index c90058818970ec5b9d38bce3261b685dda7ac7da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1SnJY5_^ zEP9he0s?-VcVIqn=)i#k1^@rmu98}{V#SFAE}_B`53D%2n5|#RChG%;F_~Q=Gjt{s ZLvk?d>(JF%GC(sJJYD@<);T3K0RWiTI#K`t diff --git a/cinelerra-5.1/plugins/theme_bright/mask_scale_x.png b/cinelerra-5.1/plugins/theme_bright/mask_scale_x.png deleted file mode 100644 index 1f6e7e073d0ab41ff1ff97cd1964f45a05186d71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TMc)B=- zSoFTVw2}9afr#rxWwQkf5}91M)E1uMTI1*yme3lICK}P$#B@t!;sTCV?l&`-IuC{a z>b*bp&)*cT*8K^MwMzC0lHBPNKTA#T?5>`(arOs;yqk}H&MQ3>%NnP?v9>o_q2Bs? z!S4-Sa?a;AEAdnuIb_-QY1Im*^`_S>PKt$_a4t6t3$N!&-oNOuT5==Ta-Q`8KUDP} Xack~wy?&q#=tc%lS3j3^P64nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TUd%8G= zSoFS~vX{5nK%^yJNjxuhM*^D!>#6Nb#up-c7?o%A`A*m{gMmwVzi|864^_{FT4JUDH_4aQ?GTYNXsR*T4%VzV{nvFI#BQ=O3@Sbcu@RigmB| zcJ}W1o{%OW*uimbXRbm@gGs_O1ywZA|zrh?@8eS)5Gp zX2JJ`#Yy0D-x8VEX%OjY_MD|vET2pSS9R%;c%ecZdWOV5JI`2KQ6^|I+fFXhUO~6Ip;K+&EA6< zV`N#Da-qtz;G8SB+uH;3oV2VwIev0L!Z4I(0A!jbd7ek>^;&x3IF?DDy-^fNPvx$N zqDZziO@nEgFbo5YMx*fEFbvqXUAX<8$9@qNpQgcJfNr-7#u$3NUgh#BE6XyhRx3nN mgyZpuFbvh;f2EJTAb$Yu-vbBF-L6ys00004nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T6dAc}; zSoFS~a*?yyK*W{*n&6Rl0e6qC-{rjU?m<eRw}T2qC3j%Il>xz@1CIb^+E zdO&uEMcZ73O!0-PWzY2g?X?Iw$8BuCc5ll72ZPaH^(-N+#-1`>jY6eeNKbLh*2~7Zvc5W^J diff --git a/cinelerra-5.1/plugins/theme_bright/mask_scale_ydown.png b/cinelerra-5.1/plugins/theme_bright/mask_scale_ydown.png deleted file mode 100644 index 461563026256f41b169cec3f3aa47a6d88e8a53f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 346 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1U9d%8G= zSoFS~a+a~9l|yzshV@AntK?arQY(LL>y%(L~{oMoP0)SKrPvp6uE+4M%D;CiXHiQN0Y z`44V1g>SebR9NAAd4UF3i@>!g4#w2TMY*@vzZU`8wlqX$$BVtk?Ef{FztodlwTg+s z;`y~(7JaYJb$rkF;_TS^E!p8&<-PeflVsW+{_t?O)n90H-u3^ot(j{@qXks?^u4ls mcdcV&I3{s%e`a{jMP`oEZB-hYSx!JNGI+ZBxvX4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1SZdb&7< zSoFTV9PP#IDA4-Q|FP5+R*xeo@r!;;$T@J@C`74(@#x!%$o6xy?Rxo(4bCo5n^-Au zrm^Ya`&F0khT7_U)!#Dfh0APosrUVi>sBxKoP=>+xrPe16LHQW#~HGWXvl@4tz)3|xH9+IeR`fjrCL>FVdQ&MBb@00BgeOaK4? diff --git a/cinelerra-5.1/plugins/theme_bright/unclear_dn.png b/cinelerra-5.1/plugins/theme_bright/unclear_dn.png deleted file mode 100644 index 8f117f2a6fefffe1887ab8d143054a2cd271bd70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1U7JzX3_ zEP9he0s?-VcVIr?!tE?6At4cw(DVEI`{1JvuCA_ZY;01yDy}>TY4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1SnJY5_^ zEP9he0s?-VcVIqn=)i#k1^@rmu98}{V#SFAE}_B`53D%2n5|#RChG%;F_~Q=Gjt{s ZLvk?d>(JF%GC(sJJYD@<);T3K0RWiTI#K`t diff --git a/cinelerra-5.1/plugins/theme_bright/unclear_up.png b/cinelerra-5.1/plugins/theme_bright/unclear_up.png deleted file mode 100644 index 830d9b3c97d4d5209b50e2cf76f828c17d4eb174..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9jw{Qv*Io=u8DElR>F>%)qJi`n|6Y(Na)iZdy`njxgN@xNA D!w)YB diff --git a/cinelerra-5.1/plugins/theme_cakewalk/cakewalk.C b/cinelerra-5.1/plugins/theme_cakewalk/cakewalk.C index 72ffee6d..530b40eb 100644 --- a/cinelerra-5.1/plugins/theme_cakewalk/cakewalk.C +++ b/cinelerra-5.1/plugins/theme_cakewalk/cakewalk.C @@ -98,7 +98,7 @@ void CAKEWALKTHEME::initialize() resources->popup_title_text = WHITE; resources->menu_item_text = WHITE; resources->menu_highlighted_fontcolor = BLACK; - resources->generic_button_margin = 20; + resources->generic_button_margin = xS(20); resources->pot_needle_color = TextFg; resources->pot_offset = 1; resources->progress_text = resources->text_default; @@ -108,11 +108,11 @@ void CAKEWALKTHEME::initialize() resources->menu_up = ALARM; resources->menu_shadow = ALARM; resources->menu_highlighted = CwCyan; - resources->popupmenu_margin = 15; - resources->popupmenu_triangle_margin = 15; + resources->popupmenu_margin = xS(15); + resources->popupmenu_triangle_margin = xS(15); resources->listbox_title_color = TextFgBright; - resources->listbox_title_margin = 15; - resources->listbox_title_hotspot = 15; + resources->listbox_title_margin = xS(15); + resources->listbox_title_hotspot = xS(15); resources->listbox_border1 = TextBorderOut; resources->listbox_border2 = CwDarkGray; resources->listbox_border3 = CwDarkGray; @@ -124,7 +124,7 @@ void CAKEWALKTHEME::initialize() resources->listbox_bg = 0; resources->listbox_text = TextFg; resources->listbox_selected = CwCyan; - resources->filebox_margin = 130; + resources->filebox_margin = yS(130); resources->file_color = WHITE; resources->directory_color = ComicYellow; title_font = MEDIUMFONT; @@ -132,7 +132,7 @@ void CAKEWALKTHEME::initialize() recordgui_fixed_color = MeterGreen; recordgui_variable_color = MeterYellow; channel_position_color = MeterYellow; - resources->meter_title_w = 25; + resources->meter_title_w = xS(25); edit_font_color = ComicYellow; assetedit_color = TextFgBright; timebar_cursor_color = WHITE; @@ -374,7 +374,7 @@ void CAKEWALKTHEME::initialize() "mask_pstn_nrm_images"); resources->bar_data = new_image("bar", "bar.png"); resources->check = new_image("check", "check.png"); - resources->min_menu_w = 96; + resources->min_menu_w = xS(96); resources->menu_popup_bg = new_image("menu_popup_bg.png"); resources->menu_item_bg = new_image_set( 3, @@ -523,7 +523,7 @@ void CAKEWALKTHEME::initialize() "vscroll_right_up.png", "vscroll_right_hi.png", "vscroll_right_dn.png"); - resources->scroll_minhandle = 20; + resources->scroll_minhandle = xS(20); new_button( "prevtip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "prev_tip"); @@ -538,14 +538,14 @@ void CAKEWALKTHEME::initialize() "editpanel_hi.png", "editpanel_dn.png", "swap_extents"); preferences_category_overlap = 0; preferencescategory_x = 0; - preferencescategory_y = 5; - preferencestitle_x = 5; - preferencestitle_y = 10; - preferencesoptions_x = 5; + preferencescategory_y = yS(5); + preferencestitle_x = xS(5); + preferencestitle_y = yS(10); + preferencesoptions_x = xS(5); preferencesoptions_y = 0; message_normal = resources->text_default; - mtransport_margin = 10; - toggle_margin = 10; + mtransport_margin = xS(10); + toggle_margin = xS(10); new_button("pane.png", "pane_up.png", "pane_hi.png", "pane_dn.png", "pane"); new_image_set("xpane", 3, @@ -612,20 +612,20 @@ void CAKEWALKTHEME::initialize() timebar_view_data = new_image("timebar_view.png"); setformat_w = get_image("setformat_bg")->get_w(); setformat_h = get_image("setformat_bg")->get_h(); - setformat_x1 = 15; - setformat_x2 = 110; - setformat_x3 = 315; - setformat_x4 = 425; - setformat_y1 = 20; - setformat_y2 = 85; - setformat_y3 = 125; - setformat_margin = 30; - setformat_channels_x = 25; - setformat_channels_y = 242; - setformat_channels_w = 250; - setformat_channels_h = 250; - loadfile_pad = get_image_set("loadmode_new")[0]->get_h() + 10; - browse_pad = 20; + setformat_x1 = xS(15); + setformat_x2 = xS(110); + setformat_x3 = xS(315); + setformat_x4 = xS(425); + setformat_y1 = yS(20); + setformat_y2 = yS(85); + setformat_y3 = yS(125); + setformat_margin = yS(30); + setformat_channels_x = xS(25); + setformat_channels_y = yS(242); + setformat_channels_w = xS(250); + setformat_channels_h = yS(250); + loadfile_pad = get_image_set("loadmode_new")[0]->get_h() + yS(10); + browse_pad = yS(20); new_toggle("playpatch.png", "playpatch_up.png", "playpatch_hi.png", @@ -1021,12 +1021,12 @@ void CAKEWALKTHEME::initialize() } void CAKEWALKTHEME::get_vwindow_sizes(VWindowGUI *gui) { - int edit_w = EditPanel::calculate_w(mwindow, 0, 10); + int edit_w = EditPanel::calculate_w(mwindow, 0, xS(10)); int transport_w = PlayTransport::get_transport_width(mwindow) + toggle_margin; - vtimebar_h = 16; - int division_w = 30; - vtime_w = 140; - int vtime_border = 15; + vtimebar_h = yS(16); + int division_w = xS(30); + vtime_w = xS(140); + int vtime_border = xS(15); vmeter_y = widget_border; vmeter_h = mwindow->session->vwindow_h - cmeter_y - widget_border; int buttons_h; @@ -1056,9 +1056,9 @@ void CAKEWALKTHEME::get_vwindow_sizes(VWindowGUI *gui) vtransport_y = mwindow->session->vwindow_h - get_image_set("autokeyframe")[0]->get_h() - widget_border; - vdivision_x = 280; - vtime_x = vedit_x + 65; - vtime_y = vedit_y + 28; + vdivision_x = xS(280); + vtime_x = vedit_x + xS(65); + vtime_y = vedit_y + yS(28); } else { buttons_h = vtimebar_h + widget_border + @@ -1117,16 +1117,17 @@ void CAKEWALKTHEME::draw_mwindow_bg(MWindowGUI *gui) int x = mbuttons_x; x += 9 * get_image("play")->get_w(); x += mtransport_margin; + int xs2 = xS(2); gui->draw_vframe(get_image("panel_divider"), - x - toggle_margin / 2 - pdw / 2 + 2, + x - toggle_margin / 2 - pdw / 2 + xs2, mbuttons_y - 1); x += 2 * get_image("arrow")->get_w() + toggle_margin; gui->draw_vframe(get_image("panel_divider"), - x - toggle_margin / 2 - pdw / 2 + 2, + x - toggle_margin / 2 - pdw / 2 + xs2, mbuttons_y - 1); x += 2 * get_image("autokeyframe")->get_w() + toggle_margin; gui->draw_vframe(get_image("panel_divider"), - x - toggle_margin / 2 - pdw / 2 + 2, + x - toggle_margin / 2 - pdw / 2 + xs2, mbuttons_y - 1); gui->draw_3segmenth(0, mbuttons_y - 1 + get_image("mbutton_bg")->get_h(), @@ -1146,10 +1147,8 @@ void CAKEWALKTHEME::draw_mwindow_bg(MWindowGUI *gui) mtimebar_w, get_image("timebar_bg")); gui->set_color(CwDarkGray); - gui->draw_box(mzoom_x, - mzoom_y, - mwindow->session->mwindow_w, - 25); + gui->draw_box(mzoom_x, mzoom_y, + mwindow->session->mwindow_w, yS(25)); gui->draw_3segmenth(mzoom_x, mzoom_y, mzoom_w, @@ -1173,7 +1172,7 @@ void CAKEWALKTHEME::draw_cwindow_bg(CWindowGUI *gui) } else { gui->draw_3segmenth(cstatus_x, ccomposite_h, - cmeter_x - widget_border - cstatus_x + 100, + cmeter_x - widget_border - cstatus_x + xS(100), get_image("cbuttons_right")); } } @@ -1197,14 +1196,11 @@ void CAKEWALKTHEME::draw_vwindow_bg(VWindowGUI *gui) } else { gui->draw_3segmenth(vdivision_x, vcanvas_h, - vmeter_x - widget_border - vdivision_x + 100, + vmeter_x - widget_border - vdivision_x + xS(100), get_image("vbuttons_right")); } - gui->draw_3segmenth( - vtime_x - 5, - vtime_y + 0, - vtime_w + 10, - get_image("vclock")); + gui->draw_3segmenth(vtime_x - xS(5), vtime_y + 0, + vtime_w + xS(10), get_image("vclock")); } void CAKEWALKTHEME::draw_preferences_bg(PreferencesWindow *gui) { diff --git a/cinelerra-5.1/plugins/theme_hulk/hulktheme.C b/cinelerra-5.1/plugins/theme_hulk/hulktheme.C index d7333981..e77e343b 100644 --- a/cinelerra-5.1/plugins/theme_hulk/hulktheme.C +++ b/cinelerra-5.1/plugins/theme_hulk/hulktheme.C @@ -46,20 +46,11 @@ #include "vframe.h" #include "vwindowgui.h" - - - PluginClient* new_plugin(PluginServer *server) { return new HULKTHEMEMain(server); } - - - - - - HULKTHEMEMain::HULKTHEMEMain(PluginServer *server) : PluginTClient(server) { @@ -80,12 +71,6 @@ Theme* HULKTHEMEMain::new_theme() } - - - - - - HULKTHEME::HULKTHEME() : Theme() { @@ -125,7 +110,7 @@ void HULKTHEME::initialize() resources->popup_title_text = 0x001000; resources->menu_item_text = 0x001000; resources->menu_highlighted_fontcolor = WHITE; - resources->generic_button_margin = 30; + resources->generic_button_margin = xS(30); resources->pot_needle_color = resources->text_default; resources->pot_offset = 1; resources->progress_text = resources->text_default; @@ -136,13 +121,13 @@ void HULKTHEME::initialize() resources->menu_down = 0x4b4b4b; resources->menu_up = 0x4b4b4b; resources->menu_shadow = 0x202020; - resources->popupmenu_margin = 15; - resources->popupmenu_triangle_margin = 15; + resources->popupmenu_margin = xS(15); + resources->popupmenu_triangle_margin = xS(15); resources->listbox_title_color = 0x001000; - resources->listbox_title_margin = 20; - resources->listbox_title_hotspot = 20; + resources->listbox_title_margin = xS(20); + resources->listbox_title_hotspot = xS(20); resources->listbox_border1 = 0x1a1a1a; resources->listbox_border2 = 0x75b697; resources->listbox_border3 = 0x75b697; @@ -152,7 +137,7 @@ void HULKTHEME::initialize() resources->listbox_bg = 0; resources->listbox_text = 0x001000; - resources->filebox_margin = 130; + resources->filebox_margin = yS(130); resources->file_color = 0x001000; resources->directory_color = 0xa0a0ff; @@ -395,7 +380,7 @@ void HULKTHEME::initialize() resources->bar_data = new_image("bar", "bar.png"); resources->check = new_image("check", "check.png"); - resources->min_menu_w = 96; + resources->min_menu_w = xS(96); resources->menu_popup_bg = new_image("menu_popup_bg.png"); resources->menu_item_bg = new_image_set(3, "menuitem_up.png", @@ -527,7 +512,7 @@ void HULKTHEME::initialize() "vscroll_right_up.png", "vscroll_right_hi.png", "vscroll_right_dn.png"); - resources->scroll_minhandle = 20; + resources->scroll_minhandle = xS(20); new_button("prevtip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "prev_tip"); @@ -545,17 +530,17 @@ void HULKTHEME::initialize() preferences_category_overlap = 0; preferencescategory_x = 0; - preferencescategory_y = 5; - preferencestitle_x = 5; - preferencestitle_y = 10; - preferencesoptions_x = 5; + preferencescategory_y = yS(5); + preferencestitle_x = xS(5); + preferencestitle_y = yS(10); + preferencesoptions_x = xS(5); preferencesoptions_y = 0; // MWindow message_normal = resources->text_default; audio_color = GREEN; - mtransport_margin = 10; - toggle_margin = 10; + mtransport_margin = xS(10); + toggle_margin = xS(10); new_button("pane.png", "pane_up.png", "pane_hi.png", "pane_dn.png", "pane"); new_image_set("xpane", 3, "xpane_up.png", "xpane_hi.png", "xpane_dn.png"); @@ -606,23 +591,21 @@ void HULKTHEME::initialize() setformat_w = get_image("setformat_bg")->get_w(); setformat_h = get_image("setformat_bg")->get_h(); - setformat_x1 = 15; - setformat_x2 = 110; - - setformat_x3 = 315; - setformat_x4 = 425; - setformat_y1 = 20; - setformat_y2 = 85; - setformat_y3 = 125; - setformat_margin = 30; - setformat_channels_x = 25; - setformat_channels_y = 242; - setformat_channels_w = 250; - setformat_channels_h = 250; - - loadfile_pad = get_image_set("loadmode_new")[0]->get_h() + 10; - browse_pad = 20; - + setformat_x1 = xS(15); + setformat_x2 = xS(110); + setformat_x3 = xS(315); + setformat_x4 = xS(425); + setformat_y1 = yS(20); + setformat_y2 = yS(85); + setformat_y3 = yS(125); + setformat_margin = xS(30); + setformat_channels_x = xS(25); + setformat_channels_y = yS(242); + setformat_channels_w = xS(250); + setformat_channels_h = yS(250); + + loadfile_pad = get_image_set("loadmode_new")[0]->get_h() + yS(10); + browse_pad = yS(20); new_toggle("playpatch.png", "playpatch_up.png", @@ -934,7 +917,7 @@ void HULKTHEME::initialize() recordgui_variable_color = RED; channel_position_color = MEYELLOW; - resources->meter_title_w = 25; + resources->meter_title_w = xS(25); // (asset) edit info text color edit_font_color = YELLOW; @@ -976,18 +959,17 @@ void HULKTHEME::build_overlays() void HULKTHEME::draw_rwindow_bg(RecordGUI *gui) { // int y; -// int margin = 50; -// int margin2 = 80; -// gui->draw_9segment(recordgui_batch_x - margin, -// 0, +// int margin = xS(50); +// int margin2 = xS(80); +// gui->draw_9segment(recordgui_batch_x - margin, 0, // mwindow->session->rwindow_w - recordgui_status_x + margin, // recordgui_buttons_y, // rgui_batch); // gui->draw_3segmenth(recordgui_options_x - margin2, -// recordgui_buttons_y - 5, +// recordgui_buttons_y - yS(5), // mwindow->session->rwindow_w - recordgui_options_x + margin2, // rgui_controls); -// y = recordgui_buttons_y - 5 + rgui_controls->get_h(); +// y = recordgui_buttons_y - yS(5) + rgui_controls->get_h(); // gui->draw_9segment(0, // y, // mwindow->session->rwindow_w, @@ -997,27 +979,21 @@ void HULKTHEME::draw_rwindow_bg(RecordGUI *gui) void HULKTHEME::draw_rmonitor_bg(RecordMonitorGUI *gui) { -// int margin = 45; -// int panel_w = 300; +// int margin = xS(45); +// int panel_w = xS(300); // int x = rmonitor_meter_x - margin; // int w = mwindow->session->rmonitor_w - x; // if(w < rmonitor_meters->get_w()) w = rmonitor_meters->get_w(); -// gui->clear_box(0, -// 0, +// gui->clear_box(0, 0, // mwindow->session->rmonitor_w, // mwindow->session->rmonitor_h); -// gui->draw_9segment(x, -// 0, +// gui->draw_9segment(x, 0, // w, // mwindow->session->rmonitor_h, // rmonitor_meters); } - - - - void HULKTHEME::draw_mwindow_bg(MWindowGUI *gui) { // Button bar @@ -1028,19 +1004,19 @@ void HULKTHEME::draw_mwindow_bg(MWindowGUI *gui) int x = mbuttons_x; x += 9 * get_image("play")->get_w(); x += mtransport_margin; // the control buttons - + int xs2 = xS(2); gui->draw_vframe(get_image("panel_divider"), - x - toggle_margin / 2 - pdw / 2 + 2, + x - toggle_margin / 2 - pdw / 2 + xs2, mbuttons_y - 1); x += 2 * get_image("arrow")->get_w() + toggle_margin; // the mode buttons gui->draw_vframe(get_image("panel_divider"), - x - toggle_margin / 2 - pdw / 2 + 2, + x - toggle_margin / 2 - pdw / 2 + xs2, mbuttons_y - 1); x += 3 * get_image("autokeyframe")->get_w() + toggle_margin; // the state toggle buttons gui->draw_vframe(get_image("panel_divider"), - x - toggle_margin / 2 - pdw / 2 + 2, + x - toggle_margin / 2 - pdw / 2 + xs2, mbuttons_y - 1); // Clock @@ -1050,10 +1026,8 @@ void HULKTHEME::draw_mwindow_bg(MWindowGUI *gui) get_image("clock_bg")); // Patchbay - gui->draw_3segmentv(patchbay_x, - patchbay_y, - patchbay_h, - get_image("patchbay_bg")); + gui->draw_3segmentv(patchbay_x, patchbay_y, + patchbay_h, get_image("patchbay_bg")); // Track canvas gui->set_color(BLACK); @@ -1063,17 +1037,13 @@ void HULKTHEME::draw_mwindow_bg(MWindowGUI *gui) mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ) - mtimebar_h); // Timebar - gui->draw_3segmenth(mtimebar_x, - mtimebar_y, - mtimebar_w, - get_image("timebar_bg")); + gui->draw_3segmenth(mtimebar_x, mtimebar_y, + mtimebar_w, get_image("timebar_bg")); // Zoombar gui->set_color(0x75b697); - gui->draw_box(mzoom_x, - mzoom_y, - mwindow->session->mwindow_w, - 25); + gui->draw_box(mzoom_x, mzoom_y, + mwindow->session->mwindow_w, yS(25)); // Scrollbar filler // gui->draw_vframe(get_image("mscroll_filler"), @@ -1081,10 +1051,8 @@ void HULKTHEME::draw_mwindow_bg(MWindowGUI *gui) // mcanvas_y + mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ)); // Status - gui->draw_3segmenth(mzoom_x, - mzoom_y, - mzoom_w, - get_image("statusbar")); + gui->draw_3segmenth(mzoom_x, mzoom_y, + mzoom_w, get_image("statusbar")); } @@ -1111,7 +1079,7 @@ void HULKTHEME::draw_cwindow_bg(CWindowGUI *gui) { gui->draw_3segmenth(cstatus_x, ccomposite_h, - cmeter_x - widget_border - cstatus_x + 100, + cmeter_x - widget_border - cstatus_x + xS(100), get_image("cbuttons_right")); } } @@ -1138,15 +1106,13 @@ void HULKTHEME::draw_vwindow_bg(VWindowGUI *gui) { gui->draw_3segmenth(vdivision_x, vcanvas_h, - vmeter_x - widget_border - vdivision_x + 100, + vmeter_x - widget_border - vdivision_x + xS(100), get_image("cbuttons_right")); } // Clock border - gui->draw_3segmenth(vtime_x - 20, - vtime_y - 1, - vtime_w + 40, - get_image("vclock")); + gui->draw_3segmenth(vtime_x - xS(20), vtime_y - 1, + vtime_w + 40, get_image("vclock")); } void HULKTHEME::draw_preferences_bg(PreferencesWindow *gui) diff --git a/cinelerra-5.1/plugins/theme_hulk/mask_all_linear.png b/cinelerra-5.1/plugins/theme_hulk/mask_all_linear.png deleted file mode 100644 index 1f18bc8baf7c82a17207ef6ac4ddbec9f0826d60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 408 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq!<_&MLk^{ zLo9mVPTAxApc9Mj`vgmI$ZZre59qE}gBc8#gR6`Nv%On^}cNOhs%; zOZMg$yWZ`)%b~h`_L(y?PoCb*tUgt9Dt}Xr?333ab{PTp`9HZ%&=0D#pP&7l`JiyY z#8%-4Mr>j|NAogfa8|Re^FG+R?6X2RPtFatGYs0#Ztdr;WKnA}ZvHLpofdjw=br0L z;TtqJu)1wjWms|BB;zLUr~U<3V|CYP{e#4efogdqa8euTDNGKe;CR{ojy%oKdysp6-2h@Z707jYHAqDF2y*bgv;n}Wp@s}h^sC!1__wDBF2NJkoDvyT26oJgzX*DI=%wACru>XeG=B-i)a zj+IEOwHV=%3YIKzcIviN-|B47R<<8dbU@**Qa>$-fQ-i^GSJYPK2A>6>M}O^u)1Sr z-Ync4`Fy=+r{3X~a}wxvaf`qw5Ys>c3c8Wu>9|lUFWh+Cy{qO5+0tJmTfpxYr8>id}lp87%Gs9FLSh1&g&!4vmn8H^)}zVZ`oWB!sLlQG%z&To$i zUcagC6*T81u(do0dQ}M=^Mn2dd(>_NnQI2xL80%mqE~ho#$a5+)9ps~i`14^u@WeV!uLNx+f|cefs7*KtIJF~VW)xrzxV~h14nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1UHdb&7< zSoB_|Dxb|hu2I2oG2+$1_<#w@vr#>S0b=am0XIevn# zjCFa#aicvqH`q<92`l$l-{5+0=i!pg4idh{?#$!oFr3k_^2k;j$DoN9OxJRLnH{3i zp*8XKF_AT19HD0qhO|y_$>vp4ELqXy#j)~){_F0mpOfr2EEe6lP4)!;8iVgQ?s8@K z-(79+U$owQf`l?lgXIo;8Hcpps&dn3YgX)wf5>dOcI~SRNAI!%J;31U>gTe~DWM4f D>~wXj diff --git a/cinelerra-5.1/plugins/theme_hulk/mask_button_hi.png b/cinelerra-5.1/plugins/theme_hulk/mask_button_hi.png deleted file mode 100644 index 51f166c7a2ee908d833a9176d26d9f3747b01854..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmVGj0}8o- z6j}tYz+UhQtgO5M$sGs@34%czn+O(ZLZbUOTX@cyv*-J4c3mVA!5zPL;K$3unDw2H zdU|+-8;J>VU7xe`eic)F_f|jbZ47pTs>d@|bXv^l#tr`c%_QnZ^bKA(JJvNFM&>O8Mz z=ctU1KZ+$;%CGC+{P=lEt<|`<+^Hx&$pEM)8TDG7Q?mb(-W!Nc4jMQHecDTaglDUxSPk%fhy vD}{|L4hRmHC&qBg8*6;o{}dEn*<9xq;%MuP!{nY)00000NkvXXu0mjf9zoVg diff --git a/cinelerra-5.1/plugins/theme_hulk/mask_button_up.png b/cinelerra-5.1/plugins/theme_hulk/mask_button_up.png deleted file mode 100644 index bcbdc94d1c43e5808373306e52d0c1d58c1e8756..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9i3c5V7(&&5V^= zAMh6}Q)p#j6W#>uM97;&*49d|g&VRPlI%oMSmeUMFz?*^-V6+|(!Y?S)s&VhEp@b7 zh(|&orKJG2GecUH%5Iq_3JE488t=nAp^y{cGg~i933l`if*Zug)&TpP1R_UY4+)>C z9_>hJ!yf&`=&Z~BnbO{s!;?RSl8hX!qwL>I)|A##`bUy$3kNIhR%s8@%;TokS}1gM z-7W{mvzTemG*=xmR@#%&Uzf3tzOJ-qrLIrbq9SO?9tLj!ssj4*F=zlzft^=JOY)Vt zfB|jd>q;O($Q^*gxv@Z-_`aOR$CI!?1ixSXKxr(SImZ_i7a=sW&H#{{OXYrEsG}u0 fzF9WJO3T#`A}Xj9*)T>`00000NkvXXu0mjft8B4a diff --git a/cinelerra-5.1/plugins/theme_hulk/mask_crv_smooth.png b/cinelerra-5.1/plugins/theme_hulk/mask_crv_smooth.png deleted file mode 100644 index 8e002eafc44f3ed3ce9c7f664c37ba86e92a59cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 588 zcmV-S0<-;zP);y%T5D<$rB4}Z)SO+9tW(%(fm@so^P7twB@a|b$62f}7yD2OLUp2Ge zdq3X5&cJ{DZQ0I^Q_$8rv3PryDx4KO+YDSjZt?4)%s}wDxkIIzy_#!ouS`qe4R-P`Q-xcD=gr%x!i!x&>++LM!8g>{JIJ%D)qPGO^g9ti)c>R10OqS! z{W%CcVG}>V79yfrskTe<`<+62S?iS|uah5l3L9%$8!2o&LNo<>f66NBMc~8^e*%`j zF+7zEP8FsN9zk>>RhTXU_dJ#uJkI)uc5VbuMCYPmChR#7=YfSSh|UEt16u^f`!)tJ z%#1ywU}H|rJ8z_+tOvl!UpF)+>>!yN{6}Mhny^LDMRYG2(aZtDQeENZNsHh1j=vF$ zUk`wz9jq3?{mpnS!^+o+{CUIf0bcN=b*kO>=FJR`Wr2T0fkRz1 zRNqj2hq`DpBQ_*M^#LTS1Abak{b4g5Ho}emR#|L?c>v%YkavEbBSmS7Tb6nQlmo1%j;~rFH1d7;531Zui$-frTzZ%^SLNkwi&~p?6~F zuC+FH*A4ZQq}}@i07GxpP%lWfT-B$!p54$}u@cQOmoU_vLw7!md(FpLLw#tru7*So zHS>Z*9>4$~Jz>HzRQdoUyCC-tHB;Y<*Ix+i5tU_u2qF6bM%xKj`3ueX-*zYvf$fLT oh97SvAzO6@fNZ#EH2xpO2P0>(c44z?DF6Tf07*qoM6N<$g1U3WHUIzs diff --git a/cinelerra-5.1/plugins/theme_hulk/mask_pnt_smooth.png b/cinelerra-5.1/plugins/theme_hulk/mask_pnt_smooth.png deleted file mode 100644 index 748b9748cdd1e6ae844a68623d4263b594237d4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 522 zcmV+l0`>igP)S*2U|JSH*@~XnaRLC zGFa!r$?JNqSowyFZ(l@I!P3WHy*jRiH^TT5={px|p!tYixKBot+aRPdr= z#7esB|n^6gV&c~hn z<(bZgf*b#2a2|AAvC-r<9$>;AHGtY5hUS8UA*~wPFAD9zzOZUgu%yVa#Wn+dgHxhi z(2}H{-xh!qHD{dsmw>haIQefiHK%(vj^!7O^bmL&%P;f`%`{IU(xbe-)VUCBinMB2 zB3j z;zfW4*$7&A0Sb^KrB4$n_Q}Onfx^CqiiSJ9Lvd^A?%>X*=Wk}U^Y5pf(eA*zoTMr_ z(5Pvcwn19Jn%n*l`paO>)@60@CUB^s7qfB<`U5Z}XDx8L#KV4F>W{_bi$f{YzX9z4 zu_8yn?i1oaAwIARdJH7MUV?ueYUou}4nUxjUZ7(QbbLF~Nu$g+(5M;c_||z(ig_uT z4fZb(8)T=dhZ+AL;DbT7v;JHw4E8%<6zR@`0yN~~KhPdfv)Fc?l~*ebdNB{0K{&6p zs=%KBgxcs0;J_``a=VKIUe^+}8N*hA@6s^cSQMO)%)ECMVC}p3ZBei~uOj_Yu)&-G z7Nj%Ks5uWh)MyL%2}})~mxA3BI|Y^v_Nod#)M!hvSAZwb-H_E`HveK)gc^DY{4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T+db&7< zSoFS~V$0WTz|%TEP`vMfam(+EYZIG)o2H)-l(@^Pyh`Y~yN_u8rl-rN`%e>na82!! zl84CY7aisAqaS%3$f?{VHmk8h@Ihv!+_lxyI9{x+6fT_bf^m-?uN~*t^z5IJuBk7c zbS%&Pwsn?P65}=J*RmV0KZ{_VdW8Aoq7<)Lp%XNAMz0H;wBw7Qt^e2T`8;}ipHI4d5hhXE|e>{N>X7F_Nb6Mw<&;$S)P;cJ= diff --git a/cinelerra-5.1/plugins/theme_hulk/mask_prst_ovl.png b/cinelerra-5.1/plugins/theme_hulk/mask_prst_ovl.png deleted file mode 100644 index b786d0015b7b48e923d06d24f486ed2a584ba381..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478 zcmV<40U`d0P)02Gjhd*4#LouACFo3vi*PGC zG>##DCb9#KV~r*@AjXkMEAcZE{B)NCFcH$7W&xbh%d6a5w_fEzmoDvyU!kavaR;*r zq=0##uUUEr^1zwFIY`J@sUzcpmIqwIyP#>n1O#(Ivhcl~l<_xT<2$v7zTg~)12si6 zipha<-OEQ6piU$Tp(TU64zdOG0>v=85|_~z&-OQ3*|*eIOYMuiRwe?{Qc!!+Qv0%@ zdD`<$Y^nVWL|x4Eg2e8Fi~;gmol%?;@SK#9;lF#&H#CUvQah!^Sdd)fOdAG2kupb&niHTo|s~mLDzsZjpgMHPAVZ|ub##L zmOk`Dcn8>OpU49j$T)m$FUrKbZ{q(Hv^?t&+7MX9jQ{`u diff --git a/cinelerra-5.1/plugins/theme_hulk/mask_prst_save.png b/cinelerra-5.1/plugins/theme_hulk/mask_prst_save.png deleted file mode 100644 index 4233ce69e22f7de0e36919930163b362549297c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1Sxd%8G= zSoFS~?8tXWLBRFC$=wQ;bqnsTf49QA+Wxk70n7Bq%Tyv3Oj&Zw>Gt+>_v?l47ebK8XG3$<};%O@Sa zf8@FAN&nKh4p*K>JxrTfAZo0k@;lmDg-4;_R;_w8 Bch&#^ diff --git a/cinelerra-5.1/plugins/theme_hulk/mask_prst_sqr.png b/cinelerra-5.1/plugins/theme_hulk/mask_prst_sqr.png deleted file mode 100644 index 2d23514d52f68f2f0ab2e32b31849e4912d8c367..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T?JzX3_ zEP9g@Bv=Cube!4w>;KPsFP_V3Q(9&pcj98LpHZtt%TThNi=Z%wmRV+66kSxQ*)CH| zx|dc(-GW-Xmi{D}lo5n|)52q<`SYo}Xg23C^S)&1gW2%51&-8Z

Z0YE#T)+kM5A0ji)I1uggedIN|xYPio9W$vZj^^2zgVs>pEj}&~Tm0e&9cyi** zcF&t|4pbEh7_Gfv#X2&y$t7{WcF$L3{tYB$v^}YR1?RN52Lui6MK6<~&H|6Xy73GS zb|8l>5>9*3{-jn&8Be@>-tmv~THF`pvR~NX(gVLNe0w{H1&NIp3QXkv)Aa?{(QV;G S>q@Es00004nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1StJzX3_ zEP9g@Bv=CubohUI_5V394-e1R2$Rw*L$9z2DIc!>KmUL7E2~^LPoCl#9;PV=7_S+q zsakAcWd;Fm%UK;8=OjoR=5big$vDgP-im{VZze=UxdC~5BwOY%ak90=DVls?U^sI{ W;g<3>mi0hO89ZJ6T-G@yGywpf-bwNR diff --git a/cinelerra-5.1/plugins/theme_hulk/mask_pstn_cen.png b/cinelerra-5.1/plugins/theme_hulk/mask_pstn_cen.png deleted file mode 100644 index ec4fc4f470151f8f907e3e243f97c3be3b8ce393..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 380 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1Tkdb&7< zSoA)f;^=k6LBKV>(_LVT>lX&W@Ow!mmfuPofju*o?7s8#o3Q95)NLS_TBY@R{po|yLqN}2`3g$Xs|K9 zE|s{vr#XprPR-QNw0B!_(+WhK4_a-EM3b}#+wC2n%QiSDfrlh=7r WZLQUHY6mb77(8A5T-G@yGywoRx0zG` diff --git a/cinelerra-5.1/plugins/theme_hulk/mask_pstn_nrm.png b/cinelerra-5.1/plugins/theme_hulk/mask_pstn_nrm.png deleted file mode 100644 index 4395c72a907e6a044f229a227614e04832709532..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1V2JY5_^ zEP9g@Bv=Cube!4w>;KRClznE4Rg{_K9JW-Iv@T&N+3WK}%7x>?nS@D)1Y{p{Gyh^a xdZKU7#gInXo;M)}oAesqs0MYP4Qvo)U}%lhGx`*;bTiOo22WQ%mvv4FO#tOQL)riU diff --git a/cinelerra-5.1/plugins/theme_hulk/mask_scale_chkd.png b/cinelerra-5.1/plugins/theme_hulk/mask_scale_chkd.png deleted file mode 100644 index 5b3a5d3590d2c858872daace22de0abab25ece81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmV;p0Z0CcP)=(`RV;I3?gr57V5Xd!w^p+{LFB5wq%@lzhDoXHTXk|Pa3HH zJtQ#nGdvB%^8~X1XtWxS-LP~X2Dk?z;3UCm4NXm?fT{v{c{~|+ndm1xzdqC?kt8#A z$JaWCH>bkpkMUo??sjr;$}SQ0~Fup|;LZ;V&t(qKuXXzJqNXll~-;xqnw ii}G9qTD6JotGLqu diff --git a/cinelerra-5.1/plugins/theme_hulk/mask_scale_chkdhi.png b/cinelerra-5.1/plugins/theme_hulk/mask_scale_chkdhi.png deleted file mode 100644 index 7988e0b30aaae0fcb48bc735c7f0d6b338896cd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)j5062XrIK3#ye8xs^oz31))>c;e z(dp0$Ik9P&*A=sB&Uo^`{o|O}G)vb7i69yEbiQ<0K0Q;G<)`M{eJ@^yzq0<%I6eGU zJo`??lBg2Hk_cG(VyrDr4ND@pJWCF{JR|J)_pqZw6c4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9i3c5V7(&&Gj0}8o- z6j}tYz+UhQtgO5M$sGs@34%czn+O(ZLZbUOTX@cyv*-J4c3mVA!5zPL;K$3unDw2H zdU|+-8;J>VU7xe`eic)F_f|jbZ47pTs>d@|bXv^l#tr`c%_QnZ^bKA(JJvNFM&>O8Mz z=ctU1KZ+$;%CGC+{P=lEt<|`<+^Hx&$pEM)8TDG7Q?mb(-W!Nc4jMQHecDTaglDUxSPk%fhy vD}{|L4hRmHC&qBg8*6;o{}dEn*<9xq;%MuP!{nY)00000NkvXXu0mjf9zoVg diff --git a/cinelerra-5.1/plugins/theme_hulk/mask_scale_x.png b/cinelerra-5.1/plugins/theme_hulk/mask_scale_x.png deleted file mode 100644 index 357416326c569dd5fd30f6048ceb17b60471e103..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TEdb&7< zSoFS~Wb4HoDAKxr`iY2Wo*7@95?I2METbf!IH(L2~bSxrq%G{~2lvr^_OXLr<-mB%lB)mZYhal^@Ct&1jQnJuO-%(xG; z|43=&kWTpS9k}Y|hI{PsYi7KBy5#&vmM!1cUgesc?hx31nI-Ssp#;&`*cV?fJz0A4 zc&@FQ{Omt#w|!_h7GEgmCojCCBaeO3E7!~Oe_2`mo56qmNznhp9ghuwo@VfL^>bP0 Hl+XkKsP2}; diff --git a/cinelerra-5.1/plugins/theme_hulk/mask_scale_xdown.png b/cinelerra-5.1/plugins/theme_hulk/mask_scale_xdown.png deleted file mode 100644 index f1875ee31fc8e961ac64ba5402ffb4079666cf91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 604 zcmV-i0;BzjP)F@%R0bB3FkFcBxsUt%68wQgox2@d)@+d=`NFv9=o{g;Y$xcp{`)eoOIH-4VcV@Cj(zIu(dZ)+`~z8!tsoVg7^skqF; zxd-^ZkBDl{aXqMV@6Igc;xZG3E2M|heEs~TC7c>g;d?&wvvVvh7XS6vA5U85`0cAj zR^NZ*c=kkW&Z97-aB&jvm$#`eN-%m7y|Qh4Pu$wtD*yYBzY}Y}6{@4Rq625sG)-(k qJKW`N#XflHB(Lu;XoU|=WcdRqKUp5wU<e6P0#$LMfF%M#XwapqoOn&qHQmv&}~Fs$W=`nSJlW zcix*B_%A0(PeT3rPT>r+Rit#VEVp~plH1z$dR$+FxT5HCAmwMtzfw9-(a*q3;Kh(Z z-)QGZkya6HJ(ThXfRFm^UXfu1q|${Ah-Y2;>olv7G0{woXF$pVUW`QJ+bnn>WneZZ zciizDgTpSR3*hDmz}pq^>*<(Ba`zN?Wz^0CYi>D;;C-&+MOlm(1sH{Gg{@HSPG(ma zwRNBd)PWEr(oGyC7+&Sskn05=hQ?6rs1$XL-zVm(qF)3h>-$X93s?q|k^;2>GZz7?CPaRhp*NC)I+vN)s=fp!1`^m1~?OJUUR11CUpj=`b3;<<9ATX)d= gf%s3S#s8!F1ZAkm%94U*LYZsvQmO4_toNh=<&^}<^8vC zX|7cvR#MS+=pA&o$Bi(Pt3rCG+#WZ&l!}yLt}3yV3SCK=LEKoqi`#Rvj3mYw9*>i< z#EK-k+l~K$0*dnsxj#3L@cD01QlcxRNG>6soSLFy%T~%BeiX~LiBF6XyA@}6Y?Q=b zlK|wc&85V@ff9ca8#ffQ#C`oh4#;2%WJoyqw8iFuQWL;{cIrl`;l zfUqp0(IJE-P)ee!yEZQc+>FJ@&CTP=)nBL&)?o{qp1$4;^4jWWsR`^La`rp6m6kC* z{Wo*BX8_WQmr2EM*M27}%SUe{f+Z|=*Eb-AMYyLMfahxK2v*l{I?~HGkqA=Q%o&Em zqn1krK>w9~Ji42dVRHIZ4{qh6p`ji#ZP~8cTDrS?IMu!IqMt5aLRj_^;&dufM&=K4 zYj`wced72DY+(`D9zfGvginU~`efMY$A)4Vc%|-P#d2i}i*@VQ0ifYpab__UcYzB1 ze%!i7d?XG)Q)n+QG&OR(vkQ?Dg!aFLZCP|4=>VXpxCmicB*w zV<5_lEg|-V_VPtrC&$`40kDLi`PKbMVblKc5h|-HnVFeoBzkj+VyQB64Di?!hFQEg? zw13#j(Zj9(^6|6xKEjwac;$_Q0Ob1%a7jhdOfFin^sFeatibE@I_u!`b!2B}ai*t_ zUoZCquy?z!X}){(14eJexX^cwpU?k@`5%{n&*!CL$5U(%?xbi_ z32(mqI+~^}5Sz2cio^f6d^y?ZJ6~($?BOq0mALxg9{vGV%>6@f!xNqW00004nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1UvdAc}; zSoFS~a@LpGk*C$ZUqkU!JhRNEj-Vp1s16}V{!FC>Qy8`g%V#iXU!1n#h)l$iP@yzm z0d|4+DZPK^tx2zbaNgYn8f z@qd*M-^i`Ly@_vrgRiXk6?WrE2S3da61#^CAXwzMi diff --git a/cinelerra-5.1/plugins/theme_hulk/mask_scale_ydown.png b/cinelerra-5.1/plugins/theme_hulk/mask_scale_ydown.png deleted file mode 100644 index 921bcb024ebf17c7fcec1b29dfd3a6f385de44bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 659 zcmV;E0&M+>P)n z5|q@%4iR3vLs1!N`5rl)ei6mueY|d>xzYejHZ2!H$ z`oVMf|M-4Ce0iSlU+cR(D3cF@m}_iQV$#VJJCAguHMDJ(6M?g6x>gaeDBis zkV>pn1ezJcW?(8MB;$#a49)dk1PIMW3hI;+Oi`*Nu+wg*qqQB-n4XCePb^z%MJY@X zVWkA{{#`ztb_W1^+II6e_|h6If+;0j#g^t4S{j?O-5JOmM5`7&m^`wJ6gB%esY4L;Xu|nG#udF#0T29Zp-WWo4CkT zycikD*+s$;B4O)hNI9+ecZ%t=tw_ep`$3B7OKwFjxLD#$D=G~Z^*<9UDcIv<1IGb) zJN72K^LXm$*xL!fy<2zkf;D$Tom6jhTY{@yHC(@c6PLSo)qZJVk<&*9Se#$T@hr{F zV>s5Yy{PFrzfyKj~G+PO=7{`e`cC!I)^cE@8+M|pj)8-H&P0KsRY zyn6WDQZGu-YCIc6DOC^*;Bwb;cl-&uq0{d>%+K#XEVa6>V?yy)2AGS_a`nsw0KQGn t6x2G_RiPa^e^SP8JSqw#oh<8JI>E@34JgOJW1+2xGK(lP;cehaL>M1< z@^EGF&~D@|_5`m1L)`5sc@>D8fw~j_H4)Vtc8qo7X$Ev*{$V`K-{dL^GYMi(?C3)Lk&_T z{bf=3Tv!))0bA&ghxbC=0=UE4hT+qU*yyFYb^zY_Jr{bHseKqwZ|3=9hvd;b>)dy% za()lo1%5!>t#a-J>`d*$+|zX^zW`SRyC)>~Z%L=M;4|eu?t@+c65bTyvycMn89fID z2v1YBw=U|hU68LXS`B=*AlEDVn_<61gPTgGb^R;pZ&&(K|FC`nf7_b+<%$aa00000 LNkvXXu0mjf_5R(U diff --git a/cinelerra-5.1/plugins/theme_hulk/unclear_dn.png b/cinelerra-5.1/plugins/theme_hulk/unclear_dn.png deleted file mode 100644 index 6290fe52d9e2abd2d229f630dcf8dee31d714eb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 312 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1UHdb&7< zSoB_|Dxb|hu2I2oG2+$1_<#w@vr#>S0b=am0XIevn# zjCFa#aicvqH`q<92`l$l-{5+0=i!pg4idh{?#$!oFr3k_^2k;j$DoN9OxJRLnH{3i zp*8XKF_AT19HD0qhO|y_$>vp4ELqXy#j)~){_F0mpOfr2EEe6lP4)!;8iVgQ?s8@K z-(79+U$owQf`l?lgXIo;8Hcpps&dn3YgX)wf5>dOcI~SRNAI!%J;31U>gTe~DWM4f D>~wXj diff --git a/cinelerra-5.1/plugins/theme_hulk/unclear_hi.png b/cinelerra-5.1/plugins/theme_hulk/unclear_hi.png deleted file mode 100644 index 51f166c7a2ee908d833a9176d26d9f3747b01854..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmVGj0}8o- z6j}tYz+UhQtgO5M$sGs@34%czn+O(ZLZbUOTX@cyv*-J4c3mVA!5zPL;K$3unDw2H zdU|+-8;J>VU7xe`eic)F_f|jbZ47pTs>d@|bXv^l#tr`c%_QnZ^bKA(JJvNFM&>O8Mz z=ctU1KZ+$;%CGC+{P=lEt<|`<+^Hx&$pEM)8TDG7Q?mb(-W!Nc4jMQHecDTaglDUxSPk%fhy vD}{|L4hRmHC&qBg8*6;o{}dEn*<9xq;%MuP!{nY)00000NkvXXu0mjf9zoVg diff --git a/cinelerra-5.1/plugins/theme_hulk/unclear_up.png b/cinelerra-5.1/plugins/theme_hulk/unclear_up.png deleted file mode 100644 index bcbdc94d1c43e5808373306e52d0c1d58c1e8756..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9i3c5V7(&&EdFd3oFmW2m=Fg zFd?#Wdtb+0H`>oZNLr-5KpgqDrl-Gia&u4NoK39x5JGr#&P@U8x*mG(Kl(lnAv~Db z7(mjW9NLiNmz&kLPv^KL*VhBi08e_bRF@COAE8kV)l3n(oz*|*SuSHRW ze}NB0kAjau4~CCL4}woYlkll1^ejjU-Mx}|p0|DvEqJ^8lD>fj@Kh8<>}tM?b;8Zv z2j+R6ccS|yZ#MdK#@pQo)+w|vt%)U#%xor!)b95k!#S<|0DIAvzFK?r!Tt<8 diff --git a/cinelerra-5.1/plugins/theme_neophyte/mask_all_smooth.png b/cinelerra-5.1/plugins/theme_neophyte/mask_all_smooth.png deleted file mode 100644 index 369ddaafbf764210b48ec8b921bb1250beb56448..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 692 zcmV;l0!#ggP))NzjN|8y#!~iy#hGgjhe)H;+S&=HuQZ z3T{5r<(_kXoO9lD4)Bj8-8gBjS^HK>broa%ZAP8sbaIHK7y|OXHqY~tB9a9FlIeIn zzFf1lEh~~@=+j>0Cwi$b#cbstMXID3S zH_AOLmk&L<*1voEmNl7oNe+;F0bm1wW81dP9d&L6;mpsKh6k%4u16n^g=}5~th>gT znRq<@T0{r{T5Hc3vnV2;MI_x897!=WySmw11u;ERf@4*;#>dsMfNmYIZTmns(wMmVlhPW9DqArgCF0PiinH>cn}m+ zE|<@X$V;Wv(;y!Q@LkjW0J44op65jYTqPOwpufRB+6Ulm{f}HOw<{bDUl5Ti0M00- z*8UhQA_J95|ut2bgWJyk8=Y}j9W1_C>uD2^W=%ltxh5QtNtxnK(YRH&mT0|B|qIvh5)$PIm aFZ=+3p5t51i*fk?00004nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1SNJzX3_ zEPCHw-N?(J$m4u*zJv4pzsHw2K8RMj$jQn7A!X-A*Omt7ygmJfPu|U2Ij{H%S)3&Hr{?7yZ1mo3>?`JRKnOD5*u$Z9H<}1cipU9t_A;WjV SwNDOc8H1;*pUXO@geCy5>P>+F diff --git a/cinelerra-5.1/plugins/theme_neophyte/mask_button_hi.png b/cinelerra-5.1/plugins/theme_neophyte/mask_button_hi.png deleted file mode 100644 index 54eec7a28522dba6e37ab89f0f51e9313c9b2eb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TCJzX3_ zEP9iB-tYZ0zmct>wXw1B;k`DURZ^=&40w}1?63d7BFli8`S6N^8EpUm`~Ph*bZJhy o@*uF;omb9u21CM<&{QslLr)wNRtbnK0UF5Q>FVdQ&MBb@0Lo53%K!iX diff --git a/cinelerra-5.1/plugins/theme_neophyte/mask_button_up.png b/cinelerra-5.1/plugins/theme_neophyte/mask_button_up.png deleted file mode 100644 index 312a2b261c9a82de2a91e2bae3370cddd2e8eefe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9hef`fmbcVIr?!tLzND`#49LyCGkCiCxvX>nA%s2W+!=tXerUB?=Vd*$Dq!c_nVG!?5RpExQQA`lY-ZEGN0I9vzT02gEYSQ@4T`WCow&b7VwmjGFoZL8`J;C+%Lw@WAPcDoMvYG$W7 z6u^6b4V(hs(llLJ8tlD40&1ht=*!==EXzIvf9m!6r+NJ|N0EP5Ro}JS?Ymi?Sz}t5 zIL260)xMb>&w~OaN%9joQPqB$rmG9VA%u>IJODeu<2-0CGy4T>H5!fk5JG3VR@gid z>8a|zj5Pq>ECP#2&&+nm*P{QQm7YMw%r;|;R+f6oUwAKo&FoM_24;qcbehfP_eIdj i=yLyIS%?=subu#JX^~P2Tk+=r0000ghkFyaMLR#3Hh;s;5LmfDK?@?!?(;0cL<%=iE)_T<&%{=Pm=YVHobs zn6ZpOs@f8f4S+OF&xT>Rq^j?nb61Tqn*hCDZ_a!F5IEqyZvkuBKx40?bfp2TwI@a7 z4)7EB4jfa}M@f?0DtnF-#Q^PgJE&HxM}e8)aM-KY>p!O9{;m85pOwhI@iVH&00000 LNkvXXu0mjfVzUd! diff --git a/cinelerra-5.1/plugins/theme_neophyte/mask_pnt_linear.png b/cinelerra-5.1/plugins/theme_neophyte/mask_pnt_linear.png deleted file mode 100644 index 8dd77d349a9eecb4941b9bbf8753b76443d9af5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 531 zcmV+u0_^>XP)VK~y-6?Ub=gTTvLr&$)RCr9>!FSD_%(|G*j~fxLu3Z6+7H zRB-Wcuthp`5JC|*$4Uv}sxF1R%PpB5T*O7(gl>gL3whxl2h&oc<~`G~J>&h(`Q3BB z;R63P5VM$~C|Wee>;i!I{!O)7Jxa?2S-{4aT}hJwK=KoSr>U7N;Bk}*ENP!)LNbxG zpCyyJ<8HS*ktE5P_x_cnelC~$((m`5*X#A~f7Q6x>upFn48!oaR;!%=ILPPoZ_{!k z!Opp7Bv*qVc>l*m?^Y?aI9%U@@WM&ldFZIU0x0$Xce0GN;C_~Y=b zP$;w{%~@*~9t4&|04)IP&1Un*@Vrzi{Uo^opf&Jj16ylf192ylQn7ufTXNO;Qqj3~PF9BQtm?Bvm1qA?-PXJ67 zi^cOn_P2r|?-002ovPDHLkV1hAI=qUgI diff --git a/cinelerra-5.1/plugins/theme_neophyte/mask_pnt_smooth.png b/cinelerra-5.1/plugins/theme_neophyte/mask_pnt_smooth.png deleted file mode 100644 index fee20de694b238ade8012ecdca5dd4ba8024057f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 554 zcmV+_0@eMAP)Z)@$z%sIDdjM)c>F+R-m{C%CLmHOkxuAUgSJ}ivhZS3mYakSE(1b=%X zQYE?~B1fuf08}-`7_W9ZozDQ=^t#F~tD3Va%kq4dWgk^_UqrU5_8#ycgm9zR>-|i5 zlZgScEPDaG&hvZ+*qQac_h;Je_H*D-%4<@CY6Z7|XUnt6Wbzcagg;kA4qpxLIUR#^k zIae5C9B|P&S2PGwsOp7QtL2yV3lBs@hB3yzF~$IIfJ^JZA~FPSt12RLFt7h>$0Aa{ suLhol#HzY2A_rB1?KL5i!d=sv1P(G|RHXPN#FT7{9lv zfPMpdB9a3iLI}Hgo^RxNz7ay$1&&4J5AfDG_cck9`XZ;c_@dctepJ;6m>OeVEJ=3) zOuYA>thEDRuhD3{2i}#I!h7E`#{3YG+!*t`s)jSawRQs3j4{vd`sYevjCozuw7&`p z5XbRP5jg>D2w{JYHFtfHxOjeE1)V8`F!RQxVBiUWs{URVEF!;(u+ zv<`ev)AVSOQ#yo-Htm%SA#T&}r)hfB?RN9Ez%z}<4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TMc)B=- zSoFS~V#wEQz~d?(D&F_i|7sp@wB^+Ps}uEHxRgo@j)Z(vcmG%QZ_}g$OGBOY&g6XT zndJ4JxuSYrw7-<6@rN%q<@s68i?6@&%1Ps_n9H@!L3rxcH(`P;ev_7M-5%-7!Bf*^ zm8#LOFVdQ&MBb@0E`-IqyPW_ diff --git a/cinelerra-5.1/plugins/theme_neophyte/mask_prst_ovl.png b/cinelerra-5.1/plugins/theme_neophyte/mask_prst_ovl.png deleted file mode 100644 index 04c715bb8f3e6bcc9c0d00abfe2db57af3356493..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmVw4*zF?wva` zuwun!G%wKYc59LzOS&II*aX(|(3zy6nf1-=RkPXrzLYpk)9a;D>17CEPm)_yRS3Z( zos7rh!&a;HcdmFa7~JsQe*|j4IdBZLopWDCqtPiqwOYMtW_N)dU>{fmz5#KPB!8x^ zXjbgKe-6|nee&KvY&06bt|;_(K0ahw_7r#rY)N_s984D#wkqjCp5W0OX@Mk3emduN z^R{fy#;)w4b8haTE=xgdX6^j*O_pUF|NFV$@834FxB2w_Y^=~@Nk>2oYyn?;z21qL zwY~SBqbNGfli!kb57;)dJz!1Ja59-ZDY!0I(dl%qRVtMi!2UAV4LB~B%ZG6spDh$m zNz?RB6h*rsggQ`oAixmlIp<#2>-8UtlCN0tj|;diiqY2kztI2y002ovPDHLkV1lAO B+oJ#g diff --git a/cinelerra-5.1/plugins/theme_neophyte/mask_prst_save.png b/cinelerra-5.1/plugins/theme_neophyte/mask_prst_save.png deleted file mode 100644 index af16bf0886067e643455ffafb3de3743e47f4474..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T+db&7< zSoFS~ypiva0gsD*sJPwheO%k7^wwRi6-$m3N?ckfynrM0k#48%&zg-g4=#AjQn~x> z0#}%bgU>^sPmfIEx3PG#F-Z8l%X^pp+QziDGoksADMQR<$<4z3e4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T?JzX3_ zEP9g@Bv=Cubey@lzy5!{7f*3XNz3fxE}f1)7`PQ@cQW3n@iG?gm$J$Fu;L(dqQSLI lO_zfD8XMd6^iOJBt7S diff --git a/cinelerra-5.1/plugins/theme_neophyte/mask_prst_tri.png b/cinelerra-5.1/plugins/theme_neophyte/mask_prst_tri.png deleted file mode 100644 index 7308b9d50511fb849984949c0a035040a3966d85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478 zcmV<40U`d0P)E{A*cRYfH|#t-SLqc?aV-ZiI3>&%ERr z^4?ce^%g)?t4WgFEb>Hoz^ZyYN+NQa$FmR|&eZ_VBJu>3z4zwVU=cYAYg<*@0IJ%U zYhu9}d+&{^I^YFZ13rK|U{yqtYPFjFD6y&@hO%jlc`?Rxfr~t;Gr`u{1lSUhr(Unu z8Eaht55R_VF7xVTg5x+o1Q-s7=kt<8 diff --git a/cinelerra-5.1/plugins/theme_neophyte/mask_prst_trsh.png b/cinelerra-5.1/plugins/theme_neophyte/mask_prst_trsh.png deleted file mode 100644 index 8737a2daba5775ff997c80f6a7f3eaed4b6052e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 239 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TYJY5_^ zEP9g@Bv=Cubodwj|M!=dhll5D#1bo6Sy^olqY9wNf6pQ*X6EL_iB(g2I+`@2HDgVlYhdBm1x{HCldpu5ljV#R0>jk8$7#J+= V6k-fQT|r)B@O1TaS?83{1OPVZNe}=4 diff --git a/cinelerra-5.1/plugins/theme_neophyte/mask_pstn_cen.png b/cinelerra-5.1/plugins/theme_neophyte/mask_pstn_cen.png deleted file mode 100644 index f85de23281ef14cc9777513ad23ac1279226e413..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 393 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq!<_&**skw zLo9lqPO>%KFU*R`T$9(Avm!fX1Ra6ZxIH+1+<=4OwzF^7bHFIrUj<7m7g-n^^ zENES%(=yjL-5f->a6%ACX9Z8`%G= z^8Mdy?`sz)Kfe<^Ej3-~(+1ra?gkElBJye9wv`wBf4}+Hw%yJ9BQ>rcsMf0C4GqnH ln9UoWqP0WH^j~BxW5SPESI6rCH-W*%;OXk;vd$@?2>{q4p&kGL diff --git a/cinelerra-5.1/plugins/theme_neophyte/mask_pstn_nrm.png b/cinelerra-5.1/plugins/theme_neophyte/mask_pstn_nrm.png deleted file mode 100644 index 7429a5e17a2e0283ecc6c35ec3c31fae2a098fe4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1V2JY5_^ zEP9g@Bv=Cubey@lzy5!H%D%;mm6e(09JW-Iv@T&N+3WK}%7x>?nS@D)1Y{p{Gyh^a xdZKU7#gInXo;M)}oAesqs0MYP4Qvo)U~pj2I&h)X&mL$pgQu&X%Q~loCIHBbLe&5O diff --git a/cinelerra-5.1/plugins/theme_neophyte/mask_scale_chkd.png b/cinelerra-5.1/plugins/theme_neophyte/mask_scale_chkd.png deleted file mode 100644 index 848b1dde252a567b9055f9fdafb91aeccb4f87b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1SVJY5_^ zEP9itOqo)1=Iq(O(;FKbAO8RUzo4i0|NHy)i?00n{k?x?>-6d0^WCqd|NK5bGC*Wv zck9pphEseV)toqV;J|?o54p7u?~&bPa9iV$tKfVI5SSs6!Q#d%XIgRPL142xubd3q wW&y85}Sb4q9e07x-o5dZ)H diff --git a/cinelerra-5.1/plugins/theme_neophyte/mask_scale_chkdhi.png b/cinelerra-5.1/plugins/theme_neophyte/mask_scale_chkdhi.png deleted file mode 100644 index 074285ef4facf29b1e6054f0be13cd7000c63f9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1StJzX3_ zEP9itOqo)1=Iq(O(;FKbAO8RUzo4i0|NHy)i?00n{k?x?>-6d0-=9t0{zP&Ghs&K- z`Ar8b%zj=oxUF&MyqSG^0thTx<~{M?ii3;U`lW2LKCC#{d^n+kwjSiu!PC{xWt~$(69CBMS~dUx diff --git a/cinelerra-5.1/plugins/theme_neophyte/mask_scale_up.png b/cinelerra-5.1/plugins/theme_neophyte/mask_scale_up.png deleted file mode 100644 index 312a2b261c9a82de2a91e2bae3370cddd2e8eefe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9hef`fmbcVIr?!tLzND`#49LyCGkCiCxvX4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1UNJY5_^ zEP9iB-tYZ0zmct>wXw1B;f)@Jw*UYCA2wuWX6Bk7Qn4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TkdAc}; zSoFS~sF-)yLBREY#S>hrJDeZ6a5_ldkG z-wb&UuiaW^sAac3X5}j`2Nk8)(vSEVjFqa2&*kdfzPw@Ss(nlyZnJ*92>EJx{`2?K z$J`l~$9pk85Mgn=&Try#Yunt;6G5Tk3<^qxfg-=N#jUQw9XPU@!<`vMDAp`ZtUk zEeHRG27^iPR|tX@u?ZS1q65y?KH=i!Uept03}?YA`-O+K-~F<-WV2ZX1cX~!G?7Rs zP1Ce6sX-8^D1hs_VRDH?B18c~9vI*=V5QV&z`pPQGBAL42S01WFle<}FZFi2O*)-^ zIR6n`E|=-|`-sR(u;+OU1_Nrf+5r((0& zFdB`1OofQ>_4UPSwR%W}Se6x-rYTSF`eq#t2lczQ+vmZyZHEq)Y&NSzB-GDTDW!b_ X@%xT^d_&V600000NkvXXu0mjfKDOmH diff --git a/cinelerra-5.1/plugins/theme_neophyte/mask_scale_xy.png b/cinelerra-5.1/plugins/theme_neophyte/mask_scale_xy.png deleted file mode 100644 index 0064fbfd9bcc6b2c1fc8df9ab9b409dc649eec76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 673 zcmV;S0$%-zP)CkDosEli2j33kle6EA_Qz= zDOPsYvD@9wl-m0XwiJ>GL+&Jm?JOe*60}JrHZIxBgq>^QjLgh#qCX&~yZ4=U-g)QF zJh(;%DHc%_eFVM%VZC18TV7uNb=BtKaM+CFcnRnL4^;JOzE&?1(=`1eBCmj#7Z(@j zW_ARG?jEkLu6_at!|+}Z1RW9S#Bsa^+yW4hcSWtBR0P3pp_~(ud7zo5>9}-FktQ&o zivqZNac|jiqtS?xBsp{Un;H3os`iSUPN#DMyfw4iz*5#8k4B@zOC7h{?XkNb0>{8> zV9U(jP=T5CfG*Gzksc_*+16AFgC0-O&)xNtAL}a(BQ?E8eWXIia0I2G= znKgl~nVn~pF3?xier99<#8W!e#w=tmUx-M}-QQPppM@#MS75>20p|XPJeBdm!NL77 z3?JroF;iw_zQ4c!$jlc1DLk1>)@!xev#O}7_Gb-LL^efay{a>nv6=0N$U-)hd{Dg# zCqJ++BAf31T~(i4Dm)wxn@N)V$bXRBY4z|-d<)1U8IMMzyTxz0G`u89Rtlns$nz+Q z?zsCvRgd6LrrGs3vta@>Tdme(U@vc!GEUR9nAOh8zD-`B62 zb14cl+i~}=K@jXV8jYykZkHaPDzfNS(llKck;Q7x*8t!*6p;~;mXy#400000NkvXX Hu0mjf6qqnS diff --git a/cinelerra-5.1/plugins/theme_neophyte/mask_scale_xydown.png b/cinelerra-5.1/plugins/theme_neophyte/mask_scale_xydown.png deleted file mode 100644 index d3f7ac42f384f5d874a9d9a23e65d80efe24fb54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 866 zcmV-o1D*VdP)Of<J-37V~ zHl%N4WW<$H%0W`Q-LC5cux)#gT!w~*@Bs|iFhD|n{+x&CX-=xb(QDmXB@}*8VpdWR2Ur{#WYQX5bW&iAcWxX@DPA>I!!8- zBAd;U%jJ+#^7i)D!}%k)TCL*q`H)glC=~Gf{TPOU<2V2qhCwcuh&;@6P-Y914YyQc|nc z0NC2vBAHBba&m&>IHc2Qgb-x2SpcS{rf?jGdcFR4@cjHdfk1$KK2I{4WOH+qd_Iq9 znx6YqDuob&qoX61mzQ~ef9L%C{CjXP7(@s`B9Xu}O|Po}&d$zIRh2{{L8sGUX=#Z@ zqrt_+MK4&0UvH-<3bV7bD2n1iKg;g-FijKNwlNF?08P_SRn?o6eU2lM2#TV3`<0ay z0)YVKa@m^|larIg<8c-j7yAs|-Q5B7&x*OZIZtfcHjPGumzNh>t(K>89EaD}S8BBy zA0Hn*Dg3hYbX})dEMi#}4-XGLpTMWC*=$lOl_-@;D2l?&%nZ?Jl!=K6Pb0$Na97v$ sZyV%)qF%4NLf3Uy2r4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1V4dAc}; zSoFRPx$S${L150=K&L5c1%h^`C)xijigIuXVAgDE&tR-y+IU-ANks4oTh2)-JA)Hl zE&0ty*gJkky?uM8@0lO_pU4)0Ylg>eS?Nzx42|tN!F}?m0Z(M)w04p7M3WB=MXU)g z=TvVJm~=?7#k3)lMSPk^+Ts~58?3Cdf+sGKiJx4fGPBm?*spt*VmRsM@-2C8rw1>?z29%c?`%Hu$eN*AaOdBWPx}_U{r#_|&qBKO z`##mm$~)o{eM3Xn-xp(RSfo+LFst)L@x13}d5)^tBr!i=Snzh&yJIIdDjtiN|LNj? byFHAlj}vWD1wXt8h6IDBtDnm{r-UW|OJ$r5 diff --git a/cinelerra-5.1/plugins/theme_neophyte/mask_scale_ydown.png b/cinelerra-5.1/plugins/theme_neophyte/mask_scale_ydown.png deleted file mode 100644 index 7b916a8616602c7352dbeb161fd4cecee7431bc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 503 zcmV#b`A8RtsbUYpv;YI`N9y?KWEL-+?QY3WLEQvEAWtNUc_T3eHul)we>SAcPQn zmHmF7^ZCqdHly3^0x+3OxZQ5pw$15uN_ZZRM|$(t>vf{$d0t$9=Kaxi`-m+1fAAjw z_j)}5cDr3%Ycv|PS}g!Jo6VO#(QG!Odc7{5flH+ldOnmkokO`FfSGh!Z7^ZtT-GFxUL&RUDsv5-+wzRGBccQc6~menu_highlighted_fontcolor = CreamyWhiteBright; /* This indent is too global and the fullness ultimately depends * on the text. (Pref. top right, engl.: ~17) */ - resources->generic_button_margin = 20; // [15] + resources->generic_button_margin = xS(20); // [15] resources->pot_needle_color = CreamyWhite; // [resources->text_default] – marginal resources->pot_offset = 1; // only the needle resources->progress_text = resources->text_default; @@ -161,12 +161,12 @@ void NEOPHYTETHEME::initialize() resources->menu_shadow = ALARM; resources->menu_highlighted = BabyBlue; - resources->popupmenu_margin = 15; // indent, moves the button text to the right - resources->popupmenu_triangle_margin = 15; + resources->popupmenu_margin = xS(15); // indent, moves the button text to the right + resources->popupmenu_triangle_margin = xS(15); resources->listbox_title_color = CreamyWhiteBright; // columns header - resources->listbox_title_margin = 15; // [20] indent - resources->listbox_title_hotspot = 15; // [20] + resources->listbox_title_margin = xS(15); // [20] indent + resources->listbox_title_hotspot = xS(15); // [20] resources->listbox_border2 = BlackNineTwo; // as text_border resources->listbox_border1 = BLACK; @@ -182,7 +182,7 @@ void NEOPHYTETHEME::initialize() resources->listbox_text = CreamyWhite; resources->listbox_selected = 0x3d5477; // approximately matches column_hi - resources->filebox_margin = 130; // [130] + resources->filebox_margin = yS(130); // [130] resources->file_color = WHITE; resources->directory_color = BabyBlue; @@ -196,7 +196,7 @@ void NEOPHYTETHEME::initialize() recordgui_variable_color = RED; channel_position_color = ComicYellow; // Set Format, speaker numbers - resources->meter_title_w = 25; + resources->meter_title_w = xS(25); // (asset) edit info text color edit_font_color = ComicYellow; // ? ../../cinelerra/theme.h:282 @@ -475,7 +475,7 @@ void NEOPHYTETHEME::initialize() resources->bar_data = new_image("bar", "bar.png"); resources->check = new_image("check", "check.png"); - resources->min_menu_w = 96; + resources->min_menu_w = xS(96); resources->menu_popup_bg = new_image("menu_popup_bg.png"); resources->menu_item_bg = new_image_set( 3, @@ -649,17 +649,17 @@ void NEOPHYTETHEME::initialize() // Record windows preferences_category_overlap = 0; preferencescategory_x = 0; - preferencescategory_y = 5; - preferencestitle_x = 5; - preferencestitle_y = 10; - preferencesoptions_x = 5; + preferencescategory_y = yS(5); + preferencestitle_x = xS(5); + preferencestitle_y = yS(10); + preferencesoptions_x = xS(5); preferencesoptions_y = 0; // MWindow message_normal = resources->text_default; - mtransport_margin = 10; - toggle_margin = 10; + mtransport_margin = xS(10); + toggle_margin = xS(10); new_button("pane.png", "pane_up.png", "pane_hi.png", "pane_dn.png", "pane"); @@ -745,21 +745,21 @@ void NEOPHYTETHEME::initialize() setformat_w = get_image("setformat_bg")->get_w(); setformat_h = get_image("setformat_bg")->get_h(); - setformat_x1 = 15; - setformat_x2 = 110; - setformat_x3 = 315; - setformat_x4 = 425; - setformat_y1 = 20; - setformat_y2 = 85; - setformat_y3 = 125; - setformat_margin = 30; - setformat_channels_x = 25; - setformat_channels_y = 242; - setformat_channels_w = 250; - setformat_channels_h = 250; - - loadfile_pad = get_image_set("loadmode_new")[0]->get_h() + 10; - browse_pad = 20; + setformat_x1 = xS(15); + setformat_x2 = xS(110); + setformat_x3 = xS(315); + setformat_x4 = xS(425); + setformat_y1 = yS(20); + setformat_y2 = yS(85); + setformat_y3 = yS(125); + setformat_margin = xS(30); + setformat_channels_x = xS(25); + setformat_channels_y = yS(242); + setformat_channels_w = xS(250); + setformat_channels_h = yS(250); + + loadfile_pad = get_image_set("loadmode_new")[0]->get_h() + yS(10); + browse_pad = yS(20); new_toggle("playpatch.png", "playpatch_up.png", @@ -1175,19 +1175,19 @@ void NEOPHYTETHEME::initialize() // Re-align the Clock. theme.c:931 void NEOPHYTETHEME::get_vwindow_sizes(VWindowGUI *gui) { - int edit_w = EditPanel::calculate_w(mwindow, 0, 10); + int edit_w = EditPanel::calculate_w(mwindow, 0, xS(10)); int transport_w = PlayTransport::get_transport_width(mwindow) + toggle_margin; - vtimebar_h = 16; // The height of the position indicator - int division_w = 30; + vtimebar_h = yS(16); // The height of the position indicator + int division_w = xS(30); /* For the deco, [150]-10. The remaining space should theoretically suffice for 999,999:59:59.960 hours. Total size: 140 x 26, where a height of 24 or 22 px would be nicer. */ - vtime_w = 140; + vtime_w = xS(140); /* Indent, flat. Larger indentation also puts the 35% view into the compact view. */ - int vtime_border = 15; + int vtime_border = xS(15); vmeter_y = widget_border; vmeter_h = mwindow->session->vwindow_h - cmeter_y - widget_border; @@ -1223,9 +1223,9 @@ void NEOPHYTETHEME::get_vwindow_sizes(VWindowGUI *gui) get_image_set("autokeyframe")[0]->get_h() - widget_border; - vdivision_x = 280; // field width, compact - vtime_x = vedit_x + 38; // concentric - vtime_y = vedit_y + 24; // vertical alignment + vdivision_x = xS(280); // field width, compact + vtime_x = vedit_x + xS(38); // concentric + vtime_y = vedit_y + yS(24); // vertical alignment } else { buttons_h = vtimebar_h + widget_border + @@ -1285,20 +1285,18 @@ void NEOPHYTETHEME::build_overlays() void NEOPHYTETHEME::draw_rwindow_bg(RecordGUI *gui) { // int y; - // int margin = 50; - // int margin2 = 80; - // gui->draw_9segment(recordgui_batch_x - margin, - // 0, + // int margin = xS(50); + // int margin2 = xS(80); + // gui->draw_9segment(recordgui_batch_x - margin, 0, // mwindow->session->rwindow_w - recordgui_status_x + margin, // recordgui_buttons_y, // rgui_batch); // gui->draw_3segmenth(recordgui_options_x - margin2, - // recordgui_buttons_y - 5, + // recordgui_buttons_y - yS(5), // mwindow->session->rwindow_w - recordgui_options_x + margin2, // rgui_controls); - // y = recordgui_buttons_y - 5 + rgui_controls->get_h(); - // gui->draw_9segment(0, - // y, + // y = recordgui_buttons_y - yS(5) + rgui_controls->get_h(); + // gui->draw_9segment(0, y, // mwindow->session->rwindow_w, // mwindow->session->rwindow_h - y, // rgui_list); @@ -1306,17 +1304,15 @@ void NEOPHYTETHEME::draw_rwindow_bg(RecordGUI *gui) void NEOPHYTETHEME::draw_rmonitor_bg(RecordMonitorGUI *gui) { - // int margin = 45; - // int panel_w = 300; + // int margin = xS(45); + // int panel_w = xS(300); // int x = rmonitor_meter_x - margin; // int w = mwindow->session->rmonitor_w - x; // if(w < rmonitor_meters->get_w()) w = rmonitor_meters->get_w(); - // gui->clear_box(0, - // 0, + // gui->clear_box(0, 0, // mwindow->session->rmonitor_w, // mwindow->session->rmonitor_h); - // gui->draw_9segment(x, - // 0, + // gui->draw_9segment(x, 0, // w, // mwindow->session->rmonitor_h, // rmonitor_meters); @@ -1363,26 +1359,20 @@ void NEOPHYTETHEME::draw_mwindow_bg(MWindowGUI *gui) mcanvas_w - BC_ScrollBar::get_span(SCROLL_VERT), mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ) - mtimebar_h); // Timebar - gui->draw_3segmenth(mtimebar_x, - mtimebar_y, - mtimebar_w, - get_image("timebar_bg")); + gui->draw_3segmenth(mtimebar_x, mtimebar_y, + mtimebar_w, get_image("timebar_bg")); // Zoombar gui->set_color(BlackNineTwo); - gui->draw_box(mzoom_x, - mzoom_y, - mwindow->session->mwindow_w, - 25); + gui->draw_box(mzoom_x, mzoom_y, + mwindow->session->mwindow_w, yS(25)); // Scrollbar filler // gui->draw_vframe(get_image("mscroll_filler"), // mcanvas_x + mcanvas_w - BC_ScrollBar::get_span(SCROLL_VERT), // mcanvas_y + mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ)); // Status - gui->draw_3segmenth(mzoom_x, - mzoom_y, - mzoom_w, - get_image("statusbar")); + gui->draw_3segmenth(mzoom_x, mzoom_y, + mzoom_w, get_image("statusbar")); } void NEOPHYTETHEME::draw_cwindow_bg(CWindowGUI *gui) @@ -1403,42 +1393,34 @@ void NEOPHYTETHEME::draw_cwindow_bg(CWindowGUI *gui) mwindow->session->cwindow_h, get_image("cmeter_bg")); } else { - gui->draw_3segmenth(cstatus_x, - ccomposite_h, - cmeter_x - widget_border - cstatus_x + 100, - get_image("cbuttons_right")); + gui->draw_3segmenth(cstatus_x, ccomposite_h, + cmeter_x - widget_border - cstatus_x + xS(100), + get_image("cbuttons_right")); } } void NEOPHYTETHEME::draw_vwindow_bg(VWindowGUI *gui) { - gui->draw_3segmenth(0, - vcanvas_h, - vdivision_x, - get_image("vbuttons_left")); + gui->draw_3segmenth(0, vcanvas_h, + vdivision_x, get_image("vbuttons_left")); if(mwindow->edl->session->vwindow_meter) { - gui->draw_3segmenth(vdivision_x, - vcanvas_h, - vmeter_x - widget_border - vdivision_x, - get_image("vbuttons_right")); - gui->draw_9segment(vmeter_x - widget_border, - 0, - mwindow->session->vwindow_w - vmeter_x + widget_border, - mwindow->session->vwindow_h, - get_image("cmeter_bg")); + gui->draw_3segmenth(vdivision_x, vcanvas_h, + vmeter_x - widget_border - vdivision_x, get_image("vbuttons_right")); + gui->draw_9segment(vmeter_x - widget_border, 0, + mwindow->session->vwindow_w - vmeter_x + widget_border, + mwindow->session->vwindow_h, get_image("cmeter_bg")); } else { - gui->draw_3segmenth(vdivision_x, - vcanvas_h, - vmeter_x - widget_border - vdivision_x + 100, - get_image("vbuttons_right")); + gui->draw_3segmenth(vdivision_x, vcanvas_h, + vmeter_x - widget_border - vdivision_x + xS(100), + get_image("vbuttons_right")); } // Clock deco gui->draw_3segmenth( - vtime_x - 5, // -left, +right - vtime_y + 0, // -up, +down. Careful, move some of the buttons as well. - vtime_w + 10, // protruded l/r x*2 + vtime_x - xS(5), // -left, +right + vtime_y + 0, // -up, +down. Careful, move some of the buttons as well. + vtime_w + xS(10), // protruded l/r x*2 get_image("vclock")); } diff --git a/cinelerra-5.1/plugins/theme_neophyte/unclear.png b/cinelerra-5.1/plugins/theme_neophyte/unclear.png deleted file mode 100644 index c785fd8b50ec43f96f9c21c19a22da543d182593..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 544 zcmV+*0^j|KP)tAH`2*;H284`4 z6B;^lbbJC12?!7ZIX#jk%X>dSXNVm918@~|mhO3IZ0TZrmMKA*Zs+anj&|Py7x@2? z=ef)C+-;iAb&qCt1we=7Edbj9An6-`lMup-EX%$(X&W7w*&fL;$$d$ORaNa)RkaJ? zh~(oaipE7zJlxo^nQZ}h4d6C_p8#%p?`+ay0rxW6vre-Bu8d;$TTyVIk!B*@|UC=-uua5Ft{Gav63V?tuGJ28vys0m)H1@ z&8!39IY~-72qAoO&XHuB4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1SNJzX3_ zEPCHw-N?(J$m4u*zJv4pzsHw2K8RMj$jQn7A!X-A*Omt7ygmJfPu|U2Ij{H%S)3&Hr{?7yZ1mo3>?`JRKnOD5*u$Z9H<}1cipU9t_A;WjV SwNDOc8H1;*pUXO@geCy5>P>+F diff --git a/cinelerra-5.1/plugins/theme_neophyte/unclear_hi.png b/cinelerra-5.1/plugins/theme_neophyte/unclear_hi.png deleted file mode 100644 index 54eec7a28522dba6e37ab89f0f51e9313c9b2eb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TCJzX3_ zEP9iB-tYZ0zmct>wXw1B;k`DURZ^=&40w}1?63d7BFli8`S6N^8EpUm`~Ph*bZJhy o@*uF;omb9u21CM<&{QslLr)wNRtbnK0UF5Q>FVdQ&MBb@0Lo53%K!iX diff --git a/cinelerra-5.1/plugins/theme_neophyte/unclear_up.png b/cinelerra-5.1/plugins/theme_neophyte/unclear_up.png deleted file mode 100644 index 312a2b261c9a82de2a91e2bae3370cddd2e8eefe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9hef`fmbcVIr?!tLzND`#49LyCGkCiCxvX4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq!<_&r9536 zLo9mVPTA|l>?qQDUNUEkh;;o2MjksSg$T8+3wm?soiq{?J9y|+P)&Qmch)rZ1i=j+ zk~U&_1?8KKrSD9!G&pKdzOPvFSxmxuHOI{nZQWFJCGLIurU$79wLc&JbklL` zB!7m!dhiE)aci?4%mQg0;an_vmxa-}Gmh=r-LS_b-U-5H?|Z$CJzSo+XO?Jx>%{ zd7~S%((Lbydl`16zkg(#wok13xwPU>?YMM%Ztuu{OJ~X->AhUP*G#+XO*4zd)2}z( zUlrY5aA)i76)N3tvahn;-IrX~->uoY?Tz~VlJ%SF7z(-fuF8|q0EQ$3gQu&X%Q~lo FCIDx|qFn$0 diff --git a/cinelerra-5.1/plugins/theme_pinklady/mask_all_smooth.png b/cinelerra-5.1/plugins/theme_pinklady/mask_all_smooth.png deleted file mode 100644 index 83b80fc0f11337f266c7cecdafc62a91a12b65e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 673 zcmV;S0$%-zP)Y7AJN+DaE=jMT;-9SG`#TXi5Y zF-*om0Ui7UjHCYnA&Q#}#NbjBqlJ5a>xLKeU1ckLT-gu|;93D#+9-aMiIo4v&=}4v}`9VTF^?*GN z>}_=n(DsQ-i8enE_9P5y6BALSYlsI;gD3B+2Asqg4->IFF@Ts+=HQ#KB@qbvO?3!q zIM8j;?F4RP{+ZB?33V&J|@+vpWIDi7i)u0m~;qJ-}7Wrt!Vg z%BJQv4<^{2y6(eDZXR=nkybdv-KWBE_eMpf@vem~}nuI<_1NZ9Pa|6lwB{#ee`Np0oa00000NkvXX Hu0mjfH#{UK diff --git a/cinelerra-5.1/plugins/theme_pinklady/mask_button_dn.png b/cinelerra-5.1/plugins/theme_pinklady/mask_button_dn.png deleted file mode 100644 index d9eef067970b8c391d89d46f7a434295a7b0be0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T6db&7< zSoB_C3z|jmKoyF5+G3#N1=L>G6rjmF0IXPUl;#bjV_P55v0$ qj_dp1Ec5Q$&OJle^kCh#N9;jrEADmK-0T55n!(f6&t;ucLK6U;-*1ip diff --git a/cinelerra-5.1/plugins/theme_pinklady/mask_button_hi.png b/cinelerra-5.1/plugins/theme_pinklady/mask_button_hi.png deleted file mode 100644 index 0ff5bf47e561b83dbabb505b44ae5c622e88c6f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 517 zcmV+g0{Z=lP)eUe4$K_??Gi z-oD<_4+neXT@D|U3{y6jUtwNWpXj@d9bC>2Jd6`|KEB800*mAwN#Mmr3yxf1aiU6M z6=VFsqJpU61SPd#JS7%Y1jUI8LyvGKqts4S$(+Fie&k^WsygaeTtHy`z>=9!$9f6l z3C^tfE3q}$yt_B5C}&5ltE~_kpTAODdBMV?rT<3zoi0E3f6#A-2$z@F?S(YHe4{*5 z;on)^ov?d{GOlO56}Q3nnekTmhR1J(cNoQ~ z3Q?MPg;iyeRZIZ3L4X6i!_$Ql?oEA--S3}3J*ft^>+4(qE{fFL6wM6X00000NkvXX Hu0mjfN>}67 diff --git a/cinelerra-5.1/plugins/theme_pinklady/mask_button_up.png b/cinelerra-5.1/plugins/theme_pinklady/mask_button_up.png deleted file mode 100644 index a89301fb655da4276d2b6b68f057eda68a6fb342..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9joOfvmy&&KQy;{an^LB{Ts5 DQ@t$! diff --git a/cinelerra-5.1/plugins/theme_pinklady/mask_crv_linear.png b/cinelerra-5.1/plugins/theme_pinklady/mask_crv_linear.png deleted file mode 100644 index c3ea87d84305e89f507b41482b452aaed4ba10b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 441 zcmV;q0Y?6bP)k}9uz42x8 z0=|M}3au<`!kvJf?%u>77VOgPu}IWi^RpXCVUYvV%suCuGXn$6^)EypRj3wIEvAnu zMKV$dtQG@U8zf>WZ?ETNToEvs^08Q^7}&u>(CaUGoC%n|a{*!r{8+*3)-sqldaD*H zG#1+K?osWH?eOG#uhluC+B-Eo_#2dT^qnR(x*VEmRHxb<$%W~`YFAXd9TiR;TAvR3 zb=}tU{#eh5XPOLcvP6yUsdk?0^;V_Y163D)&s^3R2H5C^fRrK0OMZ={3*Zn~eWDM8 z^rV!n;2I#$AR?f<2CzH1vTJ}ig}sFp$InCigiHZW?r*GB=5ahf(jxCTKJB|#$;FD?%Na=g14JF z_k43M%!U8;x63*Y@~Jk2%AO5PQF0vFqqd+kcChrK$kP*Celk8#vSux8rtAO@^)kGh zHCun|9AVR6 zG>Xge>6+e#1Al0~Rgq8E)L7lOb+AvLD@td2>*2DZ3$%BLT-l#~j4eVC9>KPZleixUrP8hB$z zN=XseD&wob5?|bOU$COMig6F@kfOL+m^g~7U=@t}zxQ`9h};824a1Oo3XJt9yLqIO zUuOLlng ztM>Ts$I#FnU_U>yI?ml*&)D@l`mQv9mct2*o1o7?0FGgHmu+9K_x+AVU;s&usC5)$ k1j}CARO!4DZz#^bW-2eap07*qoM6N<$f~n*Md;kCd diff --git a/cinelerra-5.1/plugins/theme_pinklady/mask_pnt_linear.png b/cinelerra-5.1/plugins/theme_pinklady/mask_pnt_linear.png deleted file mode 100644 index e207cab90edbe3c68b99f443dc881014e45d5c20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 499 zcmVX<1X5m;O4HuxP^_1adRw;;*!@*EcKK#XU=>Kmka!>717Qo zsI*6=J=*z%$&45UEA0V@R3C>$F6pProDf-?kt;l-Ni{X2vc+9N;CiX+qtAwlGPhA8F@?zia1(K`LFO za;DlR_RBjE?n-Rp{;MRjLk}SL0BgHFT01{Sr5&ER-Bmru2~+7DmAlYdC@EC>n95zR zzu4WNa!*K_y*~h;a@VMIhGgASeJ;Uk=CSL<8>BHB(I z&s{kH1AyPtl%k{D2OxqlZfQI5pRLXyf|UZf0uceNeE{Q)k*ySnB?zkg)i)Fon0^Qi p{6S(VCo7u)Sjpz0E&BhaJ^+(Eu~m?18Q%Z^002ovPDHLkV1h`s&;S4c diff --git a/cinelerra-5.1/plugins/theme_pinklady/mask_pnt_smooth.png b/cinelerra-5.1/plugins/theme_pinklady/mask_pnt_smooth.png deleted file mode 100644 index 7e765435457becd07018c364560f0665580e6776..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 530 zcmV+t0`2{YP)sFh;I>T2cuzIau|i;?L6Bb{n;M zrmprxdM3j{dXokQikEgynUi=cny zGOx7Cz;*8lhRcJ)C>yNJ&K6yzi&jnw!TyTL5wL>lSsC00qisaafDoZ0n@4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1SRd%8G= zSoFS~V$0WTz|%TEQ2g8j<(A(U*CsaqHg!KCDRGyTdzH|0cOTLGO;49k_n#*E;F{Vc zCnu51FDkz8d(3etr*fCttVVH;dDEUJ?#)`hc>6KmBSMSVKkPF3p>k#Z+NbHFQx^(b z&f9kLde*BB*4GO^Ke>@zyr$7BNva~yNcHUD7LA?J>jEe3_#$ZQ|22C)kKVrLEqcm& keET}PJ&Ut`wfqZ~pYP`ou59`eXL=y#adk_>cG{v}nh0*a4D2 z0vPa8HNXNcF!V^`llNT-YoRiPEBnAMU<4R*L9?J~S(9?Mt;DX9C=!g=$ny`>I(}Iq-LE z+Rs1)*O`;$>4zX;0JX~VsBsTG%hJTyZ@lvv8sdAY-O?&71E^UZ1la>g zwN2EH3!1@k(y}sB^L5 diff --git a/cinelerra-5.1/plugins/theme_pinklady/mask_prst_save.png b/cinelerra-5.1/plugins/theme_pinklady/mask_prst_save.png deleted file mode 100644 index cff9a58e1e928bdddc4f5259fd4f2b808b8ff7e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 309 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1SxdAc}; zSoFS~Y{=Jaz~j1K(EI!Z=`DNZbGAfR??1#_!{%n}(BdsL$z!FK%DqV%oA%esuv?g1 z`s~bBH}%4*tr`t{OeYR3Se?myG}V7XUK_)LC}V?FwTtKKyKY|4JNxF>Q^k?iuT@(1 zcJ>xGJw43J;Wxjyb#*So-Luk6`SryGE$O8(UEI~b{=_dyzqt5CzANJw_McT(Z@6!0 yS+?|>>^s#ZLLzpu?!rNZEx~h-{kSP3-_Q9#*8fzi0h=4p^$eb_elF{r5}E*sP;n3d diff --git a/cinelerra-5.1/plugins/theme_pinklady/mask_prst_sqr.png b/cinelerra-5.1/plugins/theme_pinklady/mask_prst_sqr.png deleted file mode 100644 index bc81ab57b00c482cc2e2cd8b4f04b0512c3d814f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T?JY5_^ zEP9g@Bv=Cube#EF|Mg{k7tiHsZL^QNbUOZE;8vX7$#|p2%UHZ$$|mc>ii6CF2G=$< kT?*=JY;4n$V=Z7{$W!6I({}2wE6_9sPgg&ebxsLQ0FW*`{Qv*} diff --git a/cinelerra-5.1/plugins/theme_pinklady/mask_prst_tri.png b/cinelerra-5.1/plugins/theme_pinklady/mask_prst_tri.png deleted file mode 100644 index 357a03d1ed714e1d3579000a285600a2c8e0b442..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 474 zcmV<00VV#4P)-(K5?Si=rP@X12== zlm1JqqW*$fyH;wDWKy;iO0-9=~f4)>mO?lYGe_}8$~d^xO-&r!GjN!QID zQdkzijvKqUF=??90ll{m@NCQS+}&UfcS^ROEbG)wU|_L*uNnj1fEuu=g;H$nVpNaK zyg>8<0Fl(7Sl>I=LMevG4N#}q4C0$^!PgVuM>Q@h3%8>Y3kiE_TGoPf2?ZL6X5CQt zEY@Nv4iW`wc&Bo|8@?=11va!;>iOyQA(n)h=dw8S-d+s_8X!M+eKJ(BK9qNXE#Q?2 zZ_Z(8c`kt}O4xW^5-UfBFD*;{568Q#&VGVqjJGSbqgeBmJs@Ieueu&=Q|EveVBKT} z5PS5{keqd+?VwgNCX;mRchD9p`-oomr0gp>kkEWP+es|uFB?tcWdE|h0bjXs)L8vj QNB{r;07*qoM6N<$g6vepa{vGU diff --git a/cinelerra-5.1/plugins/theme_pinklady/mask_prst_trsh.png b/cinelerra-5.1/plugins/theme_pinklady/mask_prst_trsh.png deleted file mode 100644 index 114f529caafe63d1a6b3666d0c42ec57d9a096f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1UDJY5_^ zEP9g@Bv=CubohVze|0%84-e1Rh>}vHEYI)>DIfl?_WwWmg$0{iZYEFh3=h+k1B}-U z)Ko1turh-Hx84nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1V4c)B=- zSoA)fV(53+LBRFCL|;Qolb}q3py+l6uXPWyD=rtd7O;BtIbBoAeZ#B3<;5jZ%jF@m z`#|Sgt~&F@_Wq04-)*edZhaAY$aQs?q_XVp*PW&!Ew?| z>8)-%LXUB6Wa+Cvbt$ImlG$bZuDS;*%vuXrPT#t7p~LBNMej`(lT|Zgc75KwCO0Sj zCG%;2_FcC{zi3MwIOl)=;5>Hr_555v-sf94%wl)le6-Q2Mw08*>%YG`-*A0fd(3{d Ze%aGXsfsuH9Kdj3@O1TaS?83{1OO*@m~a39 diff --git a/cinelerra-5.1/plugins/theme_pinklady/mask_pstn_nrm.png b/cinelerra-5.1/plugins/theme_pinklady/mask_pstn_nrm.png deleted file mode 100644 index 0795095ea200b5a1e9f667356eab8709c40690a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TiJzX3_ zEP9g@Bv=Cube#EF|Mg|Ph-Yr58=Fl-#@82Io{TT5W}YzZ5Lhttph~M^TbfOw!~6vj wHz%6U(%R5GajsUx1=b0BU9vV>a&2H@2w146QZ{wo9-zStp00i_>zopr071t=Q~&?~ diff --git a/cinelerra-5.1/plugins/theme_pinklady/mask_scale_chkd.png b/cinelerra-5.1/plugins/theme_pinklady/mask_scale_chkd.png deleted file mode 100644 index f9fee16c9070bfe9bf09d25f617037248ae965f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 497 zcmV>1A4`6!P3B!EVDD0s^$p6{7Aue@9Sq#wF35R?>A zgq4?j$kO~begAfg^PwFXDx!EZWaHy1&Y6mzXNH(WSg^+6OofZ8^adm<0-PvOwE>@$ zpoz%Na1$&jk_4PxgCnQGpqdD5g{ZMH?gx|5SQ=y1$l19is!0MK_XT=sJk$QnkNzt{ z-TH5!HA6c29k{QU<4jQb;=wZAgm`i?afWqo56 zMI8WWWxLEx?$VjC463L6s-_9`6Nc)kqsK~xGl9$wXlF;{{tzQI03iagIe4{-q6)Wd zq#*bE{PK+@+IZmluCLW40ag1wQ+HV^m)u%MSnm002ovPDHLkV1j=+#f<;} diff --git a/cinelerra-5.1/plugins/theme_pinklady/mask_scale_up.png b/cinelerra-5.1/plugins/theme_pinklady/mask_scale_up.png deleted file mode 100644 index a89301fb655da4276d2b6b68f057eda68a6fb342..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9joOfvmy&&KQy;{an^LB{Ts5 DQ@t$! diff --git a/cinelerra-5.1/plugins/theme_pinklady/mask_scale_uphi.png b/cinelerra-5.1/plugins/theme_pinklady/mask_scale_uphi.png deleted file mode 100644 index 0ff5bf47e561b83dbabb505b44ae5c622e88c6f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 517 zcmV+g0{Z=lP)eUe4$K_??Gi z-oD<_4+neXT@D|U3{y6jUtwNWpXj@d9bC>2Jd6`|KEB800*mAwN#Mmr3yxf1aiU6M z6=VFsqJpU61SPd#JS7%Y1jUI8LyvGKqts4S$(+Fie&k^WsygaeTtHy`z>=9!$9f6l z3C^tfE3q}$yt_B5C}&5ltE~_kpTAODdBMV?rT<3zoi0E3f6#A-2$z@F?S(YHe4{*5 z;on)^ov?d{GOlO56}Q3nnekTmhR1J(cNoQ~ z3Q?MPg;iyeRZIZ3L4X6i!_$Ql?oEA--S3}3J*ft^>+4(qE{fFL6wM6X00000NkvXX Hu0mjfN>}67 diff --git a/cinelerra-5.1/plugins/theme_pinklady/mask_scale_x.png b/cinelerra-5.1/plugins/theme_pinklady/mask_scale_x.png deleted file mode 100644 index e9c908a7bfcf204bc98aafa25ce17858d1678f70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 369 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1UvdAc}; zSoFS~w9$(>P{8&4n?v8kG=+}(ao8Nx-*_kf!Xfz$#;J7*z56Ew?N@oD!l>(3u?N1y!cFp+Hv+3ULM!qVnVD{_vd6e*|Q-JY>U^xq{D zmSFpgIf3>DU)Rfvz6-7vEvozDpeBB?q(P_fk>4@)=TTArrj>UFhP}J|lx;uI=M0{% KelF{r5}E)PZI$}~ diff --git a/cinelerra-5.1/plugins/theme_pinklady/mask_scale_xdown.png b/cinelerra-5.1/plugins/theme_pinklady/mask_scale_xdown.png deleted file mode 100644 index 9a5a6b069c62416cb6277e59315a202e6aefd014..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 629 zcmV-*0*d{KP)YBy?OBDK}bl%zk;4D9_m3vFdNKn((HcYK@wU` zE@5|IF7v{}%gj64^^pmA_Bl;!z`%=IaUI5Y??W4i?2x&m)99M!30R3R{bCNIMGsJN zRy=`Lt3?lBCh0v&Dt z&6NmxH5LDMPpp@7muINBZbPtLE^+qC41L4#wcvWG2!+Fpr%o}jXApol*<8aLcVTjapDJ^O6{ij7vj2&y3bH{aO=G}p|P2wHd7CfOY9 zYHFvA>POM^@ugR%!aK0?$FZ*I7=Y*CP-{EJ)Zi%d?_Ppc2xh2jzU`@LnvKcr1yzXN+sTkU>#EEOC@>7A@7Bkmmi9&ez$Y)JzqZO zoO>_)S1d^f8rXNJo&j}oQwOqm`*KpUHk&S&&MHtsSrp%Umh9yRPx1-mCGdjo&$b$S zgiZYwDs}(>002ovPDHLkV1g$15yk)j diff --git a/cinelerra-5.1/plugins/theme_pinklady/mask_scale_xydown.png b/cinelerra-5.1/plugins/theme_pinklady/mask_scale_xydown.png deleted file mode 100644 index c7912c632d61cb8da9ad33a47eccdc0112a52c50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1033 zcmV+k1or!hP)+xEQg zIlHJWRtVV=p5$CSInVjz`}{bM?d#eW)pP#_8FrnGu()ONamhYxd-99anM0@1Y_<&n zOQkqHcm~~}*@>F*4S^=jq1n+Tiin79C|IJPDo&o6@yQi6x*b<`CQ7rhWEiO!!;B*}aAjqtpa3)X z9}p3-q+*Hjg5v3k2be;jI~)K^-TRZ@hOVTgZ-jz`LP0dAPJZDI0L-{xdSVh&2$Yhm zYmA8DpPXS!&Q`{5`>1L70AX2N?Yo=?udY8ph4(#v9lAn^r<8^He|Q#IN;FTYwWnfy z>>iskGZ`HkL0Bf<#={6{F>EPMNfi(Y8PY*(xRK8n< zX4mNN?W4c9Z>4GehiUOjDRimifBGOoTI6oaO*nRK-8WLn)pHEscDvE-I&*@ z(fCm#7cO2T9*@(~+>9wL+B-S`C@3hv6oMzg;0ub^Xx^^U-DGEHGto6g^U-4*X=pUIZT?zG;#iu7uAf(BUZEckAeTT)xMW*Nc3B}3g883l7Z|@;*dmg4`()`I$T07f0 z*V&%BZ@bWmrfZx$-a^DMsH&_a6b{kd`}6ZstnsCtPA6~eF2&_^aq@Tz-~V)uv+b>` z>iBKz4=foGzC87LqI`MzNXYabXeO z{WW;^*QN<7DJkLF?VHHNu8?WFqN2P!6&#Jl@CO1s3I_?zKTX9fEH4rW2bq|eVmY#$ zimxayf4(auw*0IdC6!EFp8w`M9tLK)dgB_`eYc24*B?cf%gH{^UTP|4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1UvdAc}; zSoFS~axj<4k;nBu&y)rRRn~$8!KF{OY-wnkB$v^&V2VISdhLl?an3EOJ=ZK9mWVb+ zvQKdq_-``l@BX#<)eq7ZPVx`=bY<3ipGEU$^EtA92zh&?x9YZ9pZQe&J&dsnn)%<0 zc`e@HWyiQS`a{Y_l`Pk@P45C%W*^)EiEhkW{CF8}xcVexHYF;-ueix&ZX&fw|l K=d#Wzp$P!t1d!x zqAr9iq=+Ccx^*WmiV*0k%R=cwK?Pli7Fv7+ONmk!ih@E5Vhf2+>Z1)cF*fPFF0|2- z%w!_*hr75x=X@OakBGN-shbnyH0lQRn1#h6C&IfCt^T0uKirKbL|wpADY{4cF&Z?T zd~u;J(4}e6bPS0iSNLJe5C{iB!H3CdOPxevNM#S~a5-r?xC?~f-BgNvHfIi23Pafh zZ;y81XmSD2dSox7S8tnYm9m+5{pJwsHf=2Z*Mv3@2nCsXF=>@p^4$XLbh~If)={>P z9PecM)oXI|-zp@QXiJIBUdzsHJWW1kAl_Fp4#fL-k{lp1+45G?_a>B<5~6i^vNy&#vVN^?fk0) z>}!hvaOv8WaqF?8P9%1e&$C}lwVKc{p!$^oa-TkOuD1t(^vrupt-H~QxUeUt l2A|ynRh4aT1f1R4$xj4oM@j>sZEgSn002ovPDHLkV1hTW7sdbp diff --git a/cinelerra-5.1/plugins/theme_pinklady/pinkladytheme.C b/cinelerra-5.1/plugins/theme_pinklady/pinkladytheme.C index d11aaa81..4e3d6b15 100644 --- a/cinelerra-5.1/plugins/theme_pinklady/pinkladytheme.C +++ b/cinelerra-5.1/plugins/theme_pinklady/pinkladytheme.C @@ -110,7 +110,7 @@ void PINKLADY::initialize() resources->popup_title_text = 0x1b0f11; resources->menu_item_text = 0x1b0f11; resources->menu_highlighted_fontcolor = WHITE; - resources->generic_button_margin = 30; + resources->generic_button_margin = xS(30); resources->pot_needle_color = resources->text_default; resources->pot_offset = 1; resources->progress_text = resources->text_default; @@ -121,13 +121,13 @@ void PINKLADY::initialize() resources->menu_down = 0x4b4b4b; resources->menu_up = 0x4b4b4b; resources->menu_shadow = 0x202020; - resources->popupmenu_margin = 15; - resources->popupmenu_triangle_margin = 15; + resources->popupmenu_margin = xS(15); + resources->popupmenu_triangle_margin = xS(15); resources->listbox_title_color = 0x1b0f11; - resources->listbox_title_margin = 20; - resources->listbox_title_hotspot = 20; + resources->listbox_title_margin = xS(20); + resources->listbox_title_hotspot = xS(20); resources->listbox_border1 = 0x1a1a1a; resources->listbox_border2 = 0xffb1d0; resources->listbox_border3 = 0xffb1d0; @@ -137,7 +137,7 @@ void PINKLADY::initialize() resources->listbox_bg = 0; resources->listbox_text = 0x1b0f11; - resources->filebox_margin = 130; + resources->filebox_margin = yS(130); resources->file_color = 0x1b0f11; resources->directory_color = 0xa0a0ff; @@ -380,7 +380,7 @@ void PINKLADY::initialize() resources->bar_data = new_image("bar", "bar.png"); resources->check = new_image("check", "check.png"); - resources->min_menu_w = 96; + resources->min_menu_w = xS(96); resources->menu_popup_bg = new_image("menu_popup_bg.png"); resources->menu_item_bg = new_image_set(3, "menuitem_up.png", @@ -512,7 +512,7 @@ void PINKLADY::initialize() "vscroll_right_up.png", "vscroll_right_hi.png", "vscroll_right_dn.png"); - resources->scroll_minhandle = 20; + resources->scroll_minhandle = xS(20); new_button("prevtip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "prev_tip"); @@ -530,17 +530,17 @@ void PINKLADY::initialize() preferences_category_overlap = 0; preferencescategory_x = 0; - preferencescategory_y = 5; - preferencestitle_x = 5; - preferencestitle_y = 10; - preferencesoptions_x = 5; + preferencescategory_y = yS(5); + preferencestitle_x = xS(5); + preferencestitle_y = yS(10); + preferencesoptions_x = xS(5); preferencesoptions_y = 0; // MWindow message_normal = resources->text_default; audio_color = GREEN; - mtransport_margin = 10; - toggle_margin = 10; + mtransport_margin = xS(10); + toggle_margin = xS(10); new_button("pane.png", "pane_up.png", "pane_hi.png", "pane_dn.png", "pane"); new_image_set("xpane", 3, "xpane_up.png", "xpane_hi.png", "xpane_dn.png"); @@ -591,23 +591,21 @@ void PINKLADY::initialize() setformat_w = get_image("setformat_bg")->get_w(); setformat_h = get_image("setformat_bg")->get_h(); - setformat_x1 = 15; - setformat_x2 = 110; - - setformat_x3 = 315; - setformat_x4 = 425; - setformat_y1 = 20; - setformat_y2 = 85; - setformat_y3 = 125; - setformat_margin = 30; - setformat_channels_x = 25; - setformat_channels_y = 242; - setformat_channels_w = 250; - setformat_channels_h = 250; - - loadfile_pad = get_image_set("loadmode_new")[0]->get_h() + 10; - browse_pad = 20; - + setformat_x1 = xS(15); + setformat_x2 = xS(110); + setformat_x3 = xS(315); + setformat_x4 = xS(425); + setformat_y1 = yS(20); + setformat_y2 = yS(85); + setformat_y3 = yS(125); + setformat_margin = xS(30); + setformat_channels_x = xS(25); + setformat_channels_y = yS(242); + setformat_channels_w = xS(250); + setformat_channels_h = yS(250); + + loadfile_pad = get_image_set("loadmode_new")[0]->get_h() + yS(10); + browse_pad = yS(20); new_toggle("playpatch.png", "playpatch_up.png", @@ -919,7 +917,7 @@ void PINKLADY::initialize() recordgui_variable_color = RED; channel_position_color = MEYELLOW; - resources->meter_title_w = 25; + resources->meter_title_w = xS(25); // (asset) edit info text color edit_font_color = YELLOW; @@ -958,18 +956,17 @@ void PINKLADY::build_overlays() void PINKLADY::draw_rwindow_bg(RecordGUI *gui) { // int y; -// int margin = 50; -// int margin2 = 80; -// gui->draw_9segment(recordgui_batch_x - margin, -// 0, +// int margin = xS(50); +// int margin2 = xS(80); +// gui->draw_9segment(recordgui_batch_x - margin, 0, // mwindow->session->rwindow_w - recordgui_status_x + margin, // recordgui_buttons_y, // rgui_batch); // gui->draw_3segmenth(recordgui_options_x - margin2, -// recordgui_buttons_y - 5, +// recordgui_buttons_y - yS(5), // mwindow->session->rwindow_w - recordgui_options_x + margin2, // rgui_controls); -// y = recordgui_buttons_y - 5 + rgui_controls->get_h(); +// y = recordgui_buttons_y - yS(5) + rgui_controls->get_h(); // gui->draw_9segment(0, // y, // mwindow->session->rwindow_w, @@ -979,27 +976,21 @@ void PINKLADY::draw_rwindow_bg(RecordGUI *gui) void PINKLADY::draw_rmonitor_bg(RecordMonitorGUI *gui) { -// int margin = 45; -// int panel_w = 300; +// int margin = xS(45); +// int panel_w = xS(300); // int x = rmonitor_meter_x - margin; // int w = mwindow->session->rmonitor_w - x; // if(w < rmonitor_meters->get_w()) w = rmonitor_meters->get_w(); -// gui->clear_box(0, -// 0, +// gui->clear_box(0, 0, // mwindow->session->rmonitor_w, // mwindow->session->rmonitor_h); -// gui->draw_9segment(x, -// 0, +// gui->draw_9segment(x, 0, // w, // mwindow->session->rmonitor_h, // rmonitor_meters); } - - - - void PINKLADY::draw_mwindow_bg(MWindowGUI *gui) { // Button bar @@ -1010,32 +1001,28 @@ void PINKLADY::draw_mwindow_bg(MWindowGUI *gui) int x = mbuttons_x; x += 9 * get_image("play")->get_w(); x += mtransport_margin; // the control buttons - + int xs2 = xS(2); gui->draw_vframe(get_image("panel_divider"), - x - toggle_margin / 2 - pdw / 2 + 2, + x - toggle_margin / 2 - pdw / 2 + xs2, mbuttons_y - 1); x += 2 * get_image("arrow")->get_w() + toggle_margin; // the mode buttons gui->draw_vframe(get_image("panel_divider"), - x - toggle_margin / 2 - pdw / 2 + 2, + x - toggle_margin / 2 - pdw / 2 + xs2, mbuttons_y - 1); x += 3 * get_image("autokeyframe")->get_w() + toggle_margin; // the state toggle buttons gui->draw_vframe(get_image("panel_divider"), - x - toggle_margin / 2 - pdw / 2 + 2, + x - toggle_margin / 2 - pdw / 2 + xs2, mbuttons_y - 1); // Clock - gui->draw_3segmenth(0, - mbuttons_y - 1 + get_image("mbutton_bg")->get_h(), - get_image("patchbay_bg")->get_w(), - get_image("clock_bg")); + gui->draw_3segmenth(0, mbuttons_y - 1 + get_image("mbutton_bg")->get_h(), + get_image("patchbay_bg")->get_w(), get_image("clock_bg")); // Patchbay - gui->draw_3segmentv(patchbay_x, - patchbay_y, - patchbay_h, - get_image("patchbay_bg")); + gui->draw_3segmentv(patchbay_x, patchbay_y, + patchbay_h, get_image("patchbay_bg")); // Track canvas gui->set_color(BLACK); @@ -1045,17 +1032,13 @@ void PINKLADY::draw_mwindow_bg(MWindowGUI *gui) mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ) - mtimebar_h); // Timebar - gui->draw_3segmenth(mtimebar_x, - mtimebar_y, - mtimebar_w, - get_image("timebar_bg")); + gui->draw_3segmenth(mtimebar_x, mtimebar_y, + mtimebar_w, get_image("timebar_bg")); // Zoombar gui->set_color(0xffb1d0); - gui->draw_box(mzoom_x, - mzoom_y, - mwindow->session->mwindow_w, - 25); + gui->draw_box(mzoom_x, mzoom_y, + mwindow->session->mwindow_w, yS(25)); // Scrollbar filler // gui->draw_vframe(get_image("mscroll_filler"), @@ -1063,10 +1046,8 @@ void PINKLADY::draw_mwindow_bg(MWindowGUI *gui) // mcanvas_y + mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ)); // Status - gui->draw_3segmenth(mzoom_x, - mzoom_y, - mzoom_w, - get_image("statusbar")); + gui->draw_3segmenth(mzoom_x, mzoom_y, + mzoom_w, get_image("statusbar")); } @@ -1091,9 +1072,8 @@ void PINKLADY::draw_cwindow_bg(CWindowGUI *gui) } else { - gui->draw_3segmenth(cstatus_x, - ccomposite_h, - cmeter_x - widget_border - cstatus_x + 100, + gui->draw_3segmenth(cstatus_x, ccomposite_h, + cmeter_x - widget_border - cstatus_x + xS(100), get_image("cbuttons_right")); } } @@ -1106,29 +1086,24 @@ void PINKLADY::draw_vwindow_bg(VWindowGUI *gui) get_image("vbuttons_left")); if(mwindow->edl->session->vwindow_meter) { - gui->draw_3segmenth(vdivision_x, - vcanvas_h, + gui->draw_3segmenth(vdivision_x, vcanvas_h, vmeter_x - widget_border - vdivision_x, get_image("cbuttons_right")); - gui->draw_9segment(vmeter_x - widget_border, - 0, + gui->draw_9segment(vmeter_x - widget_border, 0, mwindow->session->vwindow_w - vmeter_x + widget_border, mwindow->session->vwindow_h, get_image("cmeter_bg")); } else { - gui->draw_3segmenth(vdivision_x, - vcanvas_h, - vmeter_x - widget_border - vdivision_x + 100, + gui->draw_3segmenth(vdivision_x, vcanvas_h, + vmeter_x - widget_border - vdivision_x + xS(100), get_image("cbuttons_right")); } // Clock border - gui->draw_3segmenth(vtime_x - 20, - vtime_y - 1, - vtime_w + 40, - get_image("vclock")); + gui->draw_3segmenth(vtime_x - xS(20), vtime_y - 1, + vtime_w + xS(40), get_image("vclock")); } void PINKLADY::draw_preferences_bg(PreferencesWindow *gui) diff --git a/cinelerra-5.1/plugins/theme_pinklady/unclear.png b/cinelerra-5.1/plugins/theme_pinklady/unclear.png deleted file mode 100644 index 1c21d1c77893e276b5f225666e3302e9650c5bfc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 529 zcmV+s0`C2ZP)DHjK%=xpC+(aO@9YQzv6; zaM8t0;^wG{F&4pu5TgmZYkz@*NiU?rW?O~P75cpnCD01JsiTH>JUQ=kPTuc3aH;=a zwj8jT6f^9JU$8E!|o;Ec4H#zdh+o{loeVIzyiJ T-+Nf?00000NkvXXu0mjfX$9VZ diff --git a/cinelerra-5.1/plugins/theme_pinklady/unclear_dn.png b/cinelerra-5.1/plugins/theme_pinklady/unclear_dn.png deleted file mode 100644 index d9eef067970b8c391d89d46f7a434295a7b0be0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T6db&7< zSoB_C3z|jmKoyF5+G3#N1=L>G6rjmF0IXPUl;#bjV_P55v0$ qj_dp1Ec5Q$&OJle^kCh#N9;jrEADmK-0T55n!(f6&t;ucLK6U;-*1ip diff --git a/cinelerra-5.1/plugins/theme_pinklady/unclear_hi.png b/cinelerra-5.1/plugins/theme_pinklady/unclear_hi.png deleted file mode 100644 index 0ff5bf47e561b83dbabb505b44ae5c622e88c6f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 517 zcmV+g0{Z=lP)eUe4$K_??Gi z-oD<_4+neXT@D|U3{y6jUtwNWpXj@d9bC>2Jd6`|KEB800*mAwN#Mmr3yxf1aiU6M z6=VFsqJpU61SPd#JS7%Y1jUI8LyvGKqts4S$(+Fie&k^WsygaeTtHy`z>=9!$9f6l z3C^tfE3q}$yt_B5C}&5ltE~_kpTAODdBMV?rT<3zoi0E3f6#A-2$z@F?S(YHe4{*5 z;on)^ov?d{GOlO56}Q3nnekTmhR1J(cNoQ~ z3Q?MPg;iyeRZIZ3L4X6i!_$Ql?oEA--S3}3J*ft^>+4(qE{fFL6wM6X00000NkvXX Hu0mjfN>}67 diff --git a/cinelerra-5.1/plugins/theme_pinklady/unclear_up.png b/cinelerra-5.1/plugins/theme_pinklady/unclear_up.png deleted file mode 100644 index a89301fb655da4276d2b6b68f057eda68a6fb342..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9joOfvmy&&KQy;{an^LB{Ts5 DQ@t$! diff --git a/cinelerra-5.1/plugins/theme_suv/mask_all_linear.png b/cinelerra-5.1/plugins/theme_suv/mask_all_linear.png deleted file mode 100644 index f6481ebac1e51668e703015872dd6e304dc54873..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414 zcmV;P0b%}$P)EdFd3oFmW2m=Fg zFd?#Wdtb+0H`>oZNLr-5KpgqDrl-Gia&u4NoK39x5JGr#&P@U8x*mG(Kl(lnAv~Db z7(mjW9NLiNmz&kLPv^KL*VhBi08e_bRF@COAE8kV)l3n(oz*|*SuSHRW ze}NB0kAjau4~CCL4}woYlkll1^ejjU-Mx}|p0|DvEqJ^8lD>fj@Kh8<>}tM?b;8Zv z2j+R6ccS|yZ#MdK#@pQo)+w|vt%)U#%xor!)b95k!#S<|0DIAvzFK?r!Tt<8 diff --git a/cinelerra-5.1/plugins/theme_suv/mask_all_smooth.png b/cinelerra-5.1/plugins/theme_suv/mask_all_smooth.png deleted file mode 100644 index 369ddaafbf764210b48ec8b921bb1250beb56448..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 692 zcmV;l0!#ggP))NzjN|8y#!~iy#hGgjhe)H;+S&=HuQZ z3T{5r<(_kXoO9lD4)Bj8-8gBjS^HK>broa%ZAP8sbaIHK7y|OXHqY~tB9a9FlIeIn zzFf1lEh~~@=+j>0Cwi$b#cbstMXID3S zH_AOLmk&L<*1voEmNl7oNe+;F0bm1wW81dP9d&L6;mpsKh6k%4u16n^g=}5~th>gT znRq<@T0{r{T5Hc3vnV2;MI_x897!=WySmw11u;ERf@4*;#>dsMfNmYIZTmns(wMmVlhPW9DqArgCF0PiinH>cn}m+ zE|<@X$V;Wv(;y!Q@LkjW0J44op65jYTqPOwpufRB+6Ulm{f}HOw<{bDUl5Ti0M00- z*8UhQA_J95|ut2bgWJyk8=Y}j9W1_C>uD2^W=%ltxh5QtNtxnK(YRH&mT0|B|qIvh5)$PIm aFZ=+3p5t51i*fk?00004nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1U7JzX3_ zEP9he0s?-VcVIqn=)i#k3l=VP40Znd=a0mU6mdKI;Vst0OAHX*Z=?k diff --git a/cinelerra-5.1/plugins/theme_suv/mask_button_hi.png b/cinelerra-5.1/plugins/theme_suv/mask_button_hi.png deleted file mode 100644 index 1ad1a999b8dc9ee330866bf51ae0a7c2c7e2b0df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TSJY5_^ zEP9jYnC0H8XOm(OV`F1$^PO!Lc=dv`d7gnm;8hnDgRBoL4lZWvm$Csdo-hK{c*wfu aGBD)SbBQ}^1)BiPVeoYIb6Mw<&;$V81v6Oy diff --git a/cinelerra-5.1/plugins/theme_suv/mask_button_up.png b/cinelerra-5.1/plugins/theme_suv/mask_button_up.png deleted file mode 100644 index d633ed4ef71ed6fa860d0400fcfdc4377962428c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9i_eE9I=yaV$A7j9>FUOCf>D-Qyj!3-5i9)`VDOw3%Z`8$E?89ZJ6T-G@yGywpT CnJno5 diff --git a/cinelerra-5.1/plugins/theme_suv/mask_crv_linear.png b/cinelerra-5.1/plugins/theme_suv/mask_crv_linear.png deleted file mode 100644 index 98f9a833f2e9d48d9078025cdac8b3ae02631633..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 492 zcmV>nA%s2W+!=tXerUB?=Vd*$Dq!c_nVG!?5RpExQQA`lY-ZEGN0I9vzT02gEYSQ@4T`WCow&b7VwmjGFoZL8`J;C+%Lw@WAPcDoMvYG$W7 z6u^6b4V(hs(llLJ8tlD40&1ht=*!==EXzIvf9m!6r+NJ|N0EP5Ro}JS?Ymi?Sz}t5 zIL260)xMb>&w~OaN%9joQPqB$rmG9VA%u>IJODeu<2-0CGy4T>H5!fk5JG3VR@gid z>8a|zj5Pq>ECP#2&&+nm*P{QQm7YMw%r;|;R+f6oUwAKo&FoM_24;qcbehfP_eIdj i=yLyIS%?=subu#JX^~P2Tk+=r0000ghkFyaMLR#3Hh;s;5LmfDK?@?!?(;0cL<%=iE)_T<&%{=Pm=YVHobs zn6ZpOs@f8f4S+OF&xT>Rq^j?nb61Tqn*hCDZ_a!F5IEqyZvkuBKx40?bfp2TwI@a7 z4)7EB4jfa}M@f?0DtnF-#Q^PgJE&HxM}e8)aM-KY>p!O9{;m85pOwhI@iVH&00000 LNkvXXu0mjfVzUd! diff --git a/cinelerra-5.1/plugins/theme_suv/mask_pnt_linear.png b/cinelerra-5.1/plugins/theme_suv/mask_pnt_linear.png deleted file mode 100644 index 8dd77d349a9eecb4941b9bbf8753b76443d9af5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 531 zcmV+u0_^>XP)VK~y-6?Ub=gTTvLr&$)RCr9>!FSD_%(|G*j~fxLu3Z6+7H zRB-Wcuthp`5JC|*$4Uv}sxF1R%PpB5T*O7(gl>gL3whxl2h&oc<~`G~J>&h(`Q3BB z;R63P5VM$~C|Wee>;i!I{!O)7Jxa?2S-{4aT}hJwK=KoSr>U7N;Bk}*ENP!)LNbxG zpCyyJ<8HS*ktE5P_x_cnelC~$((m`5*X#A~f7Q6x>upFn48!oaR;!%=ILPPoZ_{!k z!Opp7Bv*qVc>l*m?^Y?aI9%U@@WM&ldFZIU0x0$Xce0GN;C_~Y=b zP$;w{%~@*~9t4&|04)IP&1Un*@Vrzi{Uo^opf&Jj16ylf192ylQn7ufTXNO;Qqj3~PF9BQtm?Bvm1qA?-PXJ67 zi^cOn_P2r|?-002ovPDHLkV1hAI=qUgI diff --git a/cinelerra-5.1/plugins/theme_suv/mask_pnt_smooth.png b/cinelerra-5.1/plugins/theme_suv/mask_pnt_smooth.png deleted file mode 100644 index fee20de694b238ade8012ecdca5dd4ba8024057f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 554 zcmV+_0@eMAP)Z)@$z%sIDdjM)c>F+R-m{C%CLmHOkxuAUgSJ}ivhZS3mYakSE(1b=%X zQYE?~B1fuf08}-`7_W9ZozDQ=^t#F~tD3Va%kq4dWgk^_UqrU5_8#ycgm9zR>-|i5 zlZgScEPDaG&hvZ+*qQac_h;Je_H*D-%4<@CY6Z7|XUnt6Wbzcagg;kA4qpxLIUR#^k zIae5C9B|P&S2PGwsOp7QtL2yV3lBs@hB3yzF~$IIfJ^JZA~FPSt12RLFt7h>$0Aa{ suLhol#HzY2A_rB1?KL5i!d=sv1P(G|RHXPN#FT7{9lv zfPMpdB9a3iLI}Hgo^RxNz7ay$1&&4J5AfDG_cck9`XZ;c_@dctepJ;6m>OeVEJ=3) zOuYA>thEDRuhD3{2i}#I!h7E`#{3YG+!*t`s)jSawRQs3j4{vd`sYevjCozuw7&`p z5XbRP5jg>D2w{JYHFtfHxOjeE1)V8`F!RQxVBiUWs{URVEF!;(u+ zv<`ev)AVSOQ#yo-Htm%SA#T&}r)hfB?RN9Ez%z}<4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TMc)B=- zSoFS~V#wEQz~d?(D&F_i|7sp@wB^+Ps}uEHxRgo@j)Z(vcmG%QZ_}g$OGBOY&g6XT zndJ4JxuSYrw7-<6@rN%q<@s68i?6@&%1Ps_n9H@!L3rxcH(`P;ev_7M-5%-7!Bf*^ zm8#LOFVdQ&MBb@0E`-IqyPW_ diff --git a/cinelerra-5.1/plugins/theme_suv/mask_prst_ovl.png b/cinelerra-5.1/plugins/theme_suv/mask_prst_ovl.png deleted file mode 100644 index 04c715bb8f3e6bcc9c0d00abfe2db57af3356493..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmVw4*zF?wva` zuwun!G%wKYc59LzOS&II*aX(|(3zy6nf1-=RkPXrzLYpk)9a;D>17CEPm)_yRS3Z( zos7rh!&a;HcdmFa7~JsQe*|j4IdBZLopWDCqtPiqwOYMtW_N)dU>{fmz5#KPB!8x^ zXjbgKe-6|nee&KvY&06bt|;_(K0ahw_7r#rY)N_s984D#wkqjCp5W0OX@Mk3emduN z^R{fy#;)w4b8haTE=xgdX6^j*O_pUF|NFV$@834FxB2w_Y^=~@Nk>2oYyn?;z21qL zwY~SBqbNGfli!kb57;)dJz!1Ja59-ZDY!0I(dl%qRVtMi!2UAV4LB~B%ZG6spDh$m zNz?RB6h*rsggQ`oAixmlIp<#2>-8UtlCN0tj|;diiqY2kztI2y002ovPDHLkV1lAO B+oJ#g diff --git a/cinelerra-5.1/plugins/theme_suv/mask_prst_save.png b/cinelerra-5.1/plugins/theme_suv/mask_prst_save.png deleted file mode 100644 index af16bf0886067e643455ffafb3de3743e47f4474..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T+db&7< zSoFS~ypiva0gsD*sJPwheO%k7^wwRi6-$m3N?ckfynrM0k#48%&zg-g4=#AjQn~x> z0#}%bgU>^sPmfIEx3PG#F-Z8l%X^pp+QziDGoksADMQR<$<4z3e4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T?JzX3_ zEP9g@Bv=Cubey@lzy5!{7f*3XNz3fxE}f1)7`PQ@cQW3n@iG?gm$J$Fu;L(dqQSLI lO_zfD8XMd6^iOJBt7S diff --git a/cinelerra-5.1/plugins/theme_suv/mask_prst_tri.png b/cinelerra-5.1/plugins/theme_suv/mask_prst_tri.png deleted file mode 100644 index 7308b9d50511fb849984949c0a035040a3966d85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478 zcmV<40U`d0P)E{A*cRYfH|#t-SLqc?aV-ZiI3>&%ERr z^4?ce^%g)?t4WgFEb>Hoz^ZyYN+NQa$FmR|&eZ_VBJu>3z4zwVU=cYAYg<*@0IJ%U zYhu9}d+&{^I^YFZ13rK|U{yqtYPFjFD6y&@hO%jlc`?Rxfr~t;Gr`u{1lSUhr(Unu z8Eaht55R_VF7xVTg5x+o1Q-s7=kt<8 diff --git a/cinelerra-5.1/plugins/theme_suv/mask_prst_trsh.png b/cinelerra-5.1/plugins/theme_suv/mask_prst_trsh.png deleted file mode 100644 index 8737a2daba5775ff997c80f6a7f3eaed4b6052e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 239 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TYJY5_^ zEP9g@Bv=Cubodwj|M!=dhll5D#1bo6Sy^olqY9wNf6pQ*X6EL_iB(g2I+`@2HDgVlYhdBm1x{HCldpu5ljV#R0>jk8$7#J+= V6k-fQT|r)B@O1TaS?83{1OPVZNe}=4 diff --git a/cinelerra-5.1/plugins/theme_suv/mask_pstn_cen.png b/cinelerra-5.1/plugins/theme_suv/mask_pstn_cen.png deleted file mode 100644 index f85de23281ef14cc9777513ad23ac1279226e413..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 393 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq!<_&**skw zLo9lqPO>%KFU*R`T$9(Avm!fX1Ra6ZxIH+1+<=4OwzF^7bHFIrUj<7m7g-n^^ zENES%(=yjL-5f->a6%ACX9Z8`%G= z^8Mdy?`sz)Kfe<^Ej3-~(+1ra?gkElBJye9wv`wBf4}+Hw%yJ9BQ>rcsMf0C4GqnH ln9UoWqP0WH^j~BxW5SPESI6rCH-W*%;OXk;vd$@?2>{q4p&kGL diff --git a/cinelerra-5.1/plugins/theme_suv/mask_pstn_nrm.png b/cinelerra-5.1/plugins/theme_suv/mask_pstn_nrm.png deleted file mode 100644 index 7429a5e17a2e0283ecc6c35ec3c31fae2a098fe4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1V2JY5_^ zEP9g@Bv=Cubey@lzy5!H%D%;mm6e(09JW-Iv@T&N+3WK}%7x>?nS@D)1Y{p{Gyh^a xdZKU7#gInXo;M)}oAesqs0MYP4Qvo)U~pj2I&h)X&mL$pgQu&X%Q~loCIHBbLe&5O diff --git a/cinelerra-5.1/plugins/theme_suv/mask_scale_chkd.png b/cinelerra-5.1/plugins/theme_suv/mask_scale_chkd.png deleted file mode 100644 index 3ce3ed80d0412cc0f4518c58bda9d5900665425a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1U7JzX3_ zEP9he0s?-VcVIqn=)i#k3l=VP40Znd=a0mU6mdKI;Vst0OAHX*Z=?k diff --git a/cinelerra-5.1/plugins/theme_suv/mask_scale_chkdhi.png b/cinelerra-5.1/plugins/theme_suv/mask_scale_chkdhi.png deleted file mode 100644 index eb64a6c32093500541fab21a997064196305edcb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1U7JzX3_ zEP9he0s?-VcVIqn=)i#k58l7`4|TqJ^{V8I64nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9i_eE9I=yaV$A7j9>FUOCf>D-Qyj!3-5i9)`VDOw3%Z`8$E?89ZJ6T-G@yGywpT CnJno5 diff --git a/cinelerra-5.1/plugins/theme_suv/mask_scale_uphi.png b/cinelerra-5.1/plugins/theme_suv/mask_scale_uphi.png deleted file mode 100644 index 1ad1a999b8dc9ee330866bf51ae0a7c2c7e2b0df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TSJY5_^ zEP9jYnC0H8XOm(OV`F1$^PO!Lc=dv`d7gnm;8hnDgRBoL4lZWvm$Csdo-hK{c*wfu aGBD)SbBQ}^1)BiPVeoYIb6Mw<&;$V81v6Oy diff --git a/cinelerra-5.1/plugins/theme_suv/mask_scale_x.png b/cinelerra-5.1/plugins/theme_suv/mask_scale_x.png deleted file mode 100644 index 0bf4bee8f8a774f90778f62f458769164af68fe4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TkdAc}; zSoFS~sF-)yLBREY#S>hrJDeZ6a5_ldkG z-wb&UuiaW^sAac3X5}j`2Nk8)(vSEVjFqa2&*kdfzPw@Ss(nlyZnJ*92>EJx{`2?K z$J`l~$9pk85Mgn=&Try#Yunt;6G5Tk3<^qxfg-=N#jCu&cd>+3%{TxfRyr~(A{pw%R`AD z^bdYkun>ancB}P0&ttt_e-A9BB#NThRKqY3MG=nU+y@IG2*Z#t3=u+5mZcVaI-OXp zRs=!7e!ss-zpyOpa-BRWCBE+?gqTgLQ{VR#MS*FWw~2>gU>wIEK>@~bCkDosEli2j33kle6EA_Qz= zDOPsYvD@9wl-m0XwiJ>GL+&Jm?JOe*60}JrHZIxBgq>^QjLgh#qCX&~yZ4=U-g)QF zJh(;%DHc%_eFVM%VZC18TV7uNb=BtKaM+CFcnRnL4^;JOzE&?1(=`1eBCmj#7Z(@j zW_ARG?jEkLu6_at!|+}Z1RW9S#Bsa^+yW4hcSWtBR0P3pp_~(ud7zo5>9}-FktQ&o zivqZNac|jiqtS?xBsp{Un;H3os`iSUPN#DMyfw4iz*5#8k4B@zOC7h{?XkNb0>{8> zV9U(jP=T5CfG*Gzksc_*+16AFgC0-O&)xNtAL}a(BQ?E8eWXIia0I2G= znKgl~nVn~pF3?xier99<#8W!e#w=tmUx-M}-QQPppM@#MS75>20p|XPJeBdm!NL77 z3?JroF;iw_zQ4c!$jlc1DLk1>)@!xev#O}7_Gb-LL^efay{a>nv6=0N$U-)hd{Dg# zCqJ++BAf31T~(i4Dm)wxn@N)V$bXRBY4z|-d<)1U8IMMzyTxz0G`u89Rtlns$nz+Q z?zsCvRgd6LrrGs3vta@>Tdme(U@vc!GEUR9nAOh8zD-`B62 zb14cl+i~}=K@jXV8jYykZkHaPDzfNS(llKck;Q7x*8t!*6p;~;mXy#400000NkvXX Hu0mjf6qqnS diff --git a/cinelerra-5.1/plugins/theme_suv/mask_scale_xydown.png b/cinelerra-5.1/plugins/theme_suv/mask_scale_xydown.png deleted file mode 100644 index b9d1f281d6813c26531e4d8d797a70b9bab715f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 666 zcmV;L0%iS)P)fhcz8f-O_pV> z*K6M1-q>t50JyG;loBZ=p679QcLzWm$0esyiX=%4H_c`f+qTK`+=#Pnn`X0FLMypH z!D*VJwMK~VPp_}9gkfmJD5aRs=Qxf-uh#=WYfYM_*TF?VtJPw;TrwVy0hmswM%>fW z6G0FVh9UR&_b8>%T3-hjTXGzS*=z<-fuBR8D8jNVj>n_HxC*Y<>j2DVGi=)?2!hg4 z5ClX~L=;5;tX3;dr_)ebP7;5oU5w~- zI#`y)Znp!>nrf{pHSc!2oK7cWrx(G);gCk7K^TUWMin}T`@YZdcr*^kMX=|2xULIS z8wJ&d`o51+>UXdZg27;b5aOcKLSYz^=XvSebzOuI<)2dl7tlhZ(TGN)!D_W4%QE1* zroQhRbG$HA9P7%g@I0?vYpvPu_Z$uf;{fD&&f#!iyWJYo?>x8SxZQ3O$1zEglyl>! zlu|4f3l@t->D2Q)+U<53V@WALZ*et=V)5Vl04nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1V4dAc}; zSoFRPx$S${L150=K&L5c1%h^`C)xijigIuXVAgDE&tR-y+IU-ANks4oTh2)-JA)Hl zE&0ty*gJkky?uM8@0lO_pU4)0Ylg>eS?Nzx42|tN!F}?m0Z(M)w04p7M3WB=MXU)g z=TvVJm~=?7#k3)lMSPk^+Ts~58?3Cdf+sGKiJx4fGPBm?*spt*VmRsM@-2C8rw1>?z29%c?`%Hu$eN*AaOdBWPx}_U{r#_|&qBKO z`##mm$~)o{eM3Xn-xp(RSfo+LFst)L@x13}d5)^tBr!i=Snzh&yJIIdDjtiN|LNj? byFHAlj}vWD1wXt8h6IDBtDnm{r-UW|OJ$r5 diff --git a/cinelerra-5.1/plugins/theme_suv/mask_scale_ydown.png b/cinelerra-5.1/plugins/theme_suv/mask_scale_ydown.png deleted file mode 100644 index c4f0e538132c3cff9951bf2b1d843870e186485e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 407 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq!<_&MLb;` zLo9mVPOvNoC%e?M(LW0xXS&Ldrkn4sMo6{$TUo#==vG=P-lfkyo6G7rxs* zvZ&jA{zpaZ^|yN}=f(f(|0P}fhu=;$IebYb7sG_0b@Sf;e%-L=HD7yBmF+AgCyuT~ zH+Y+`Nu@?6MNYdbw>m#KyLZ*9vbxyo`U}e=Q*HVlt8r;QO{popup_title_text = 0xbfbfbf; resources->menu_item_text = 0xbfbfbf; resources->menu_highlighted_fontcolor = WHITE; - resources->generic_button_margin = 30; + resources->generic_button_margin = xS(30); resources->pot_needle_color = resources->text_default; resources->pot_offset = 1; resources->progress_text = resources->text_default; @@ -132,13 +117,13 @@ void SUV::initialize() resources->menu_down = 0x4b4b4b; resources->menu_up = 0x4b4b4b; resources->menu_shadow = 0x202020; - resources->popupmenu_margin = 15; - resources->popupmenu_triangle_margin = 20; + resources->popupmenu_margin = xS(15); + resources->popupmenu_triangle_margin = xS(20); resources->listbox_title_color = 0xbfbfbf; - resources->listbox_title_margin = 20; - resources->listbox_title_hotspot = 20; + resources->listbox_title_margin = xS(20); + resources->listbox_title_hotspot = xS(20); resources->listbox_border1 = 0x1a1a1a; resources->listbox_border2 = 0x373737; resources->listbox_border3 = 0x373737; @@ -148,7 +133,7 @@ void SUV::initialize() resources->listbox_bg = 0; resources->listbox_text = 0xbfbfbf; - resources->filebox_margin = 130; + resources->filebox_margin = yS(130); resources->file_color = 0xbfbfbf; resources->directory_color = 0xa0a0ff; @@ -391,7 +376,7 @@ void SUV::initialize() resources->bar_data = new_image("bar", "bar.png"); resources->check = new_image("check", "check.png"); - resources->min_menu_w = 96; + resources->min_menu_w = xS(96); resources->menu_popup_bg = new_image("menu_popup_bg.png"); resources->menu_item_bg = new_image_set(3, "menuitem_up.png", @@ -523,7 +508,7 @@ void SUV::initialize() "vscroll_right_up.png", "vscroll_right_hi.png", "vscroll_right_dn.png"); - resources->scroll_minhandle = 20; + resources->scroll_minhandle = xS(20); new_button("prevtip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "prev_tip"); @@ -541,17 +526,17 @@ void SUV::initialize() preferences_category_overlap = 0; preferencescategory_x = 0; - preferencescategory_y = 5; - preferencestitle_x = 5; - preferencestitle_y = 10; - preferencesoptions_x = 5; + preferencescategory_y = yS(5); + preferencestitle_x = xS(5); + preferencestitle_y = yS(10); + preferencesoptions_x = xS(5); preferencesoptions_y = 0; // MWindow message_normal = resources->text_default; audio_color = GREEN; - mtransport_margin = 16; - toggle_margin = 16; + mtransport_margin = xS(16); + toggle_margin = xS(16); new_button("pane.png", "pane_up.png", "pane_hi.png", "pane_dn.png", "pane"); new_image_set("xpane", 3, "xpane_up.png", "xpane_hi.png", "xpane_dn.png"); @@ -592,22 +577,22 @@ void SUV::initialize() setformat_w = get_image("setformat_bg")->get_w(); setformat_h = get_image("setformat_bg")->get_h(); - setformat_x1 = 15; - setformat_x2 = 100; + setformat_x1 = xS(15); + setformat_x2 = xS(100); - setformat_x3 = 315; - setformat_x4 = 415; - setformat_y1 = 20; - setformat_y2 = 85; - setformat_y3 = 125; - setformat_margin = 30; - setformat_channels_x = 25; - setformat_channels_y = 242; - setformat_channels_w = 250; - setformat_channels_h = 250; + setformat_x3 = xS(315); + setformat_x4 = xS(415); + setformat_y1 = yS(20); + setformat_y2 = yS(85); + setformat_y3 = yS(125); + setformat_margin = xS(30); + setformat_channels_x = xS(25); + setformat_channels_y = yS(242); + setformat_channels_w = xS(250); + setformat_channels_h = yS(250); - loadfile_pad = get_image_set("loadmode_new")[0]->get_h() + 10; - browse_pad = 20; + loadfile_pad = get_image_set("loadmode_new")[0]->get_h() + yS(10); + browse_pad = yS(20); new_toggle("playpatch.png", @@ -920,22 +905,13 @@ void SUV::initialize() recordgui_variable_color = RED; channel_position_color = MEYELLOW; - resources->meter_title_w = 25; + resources->meter_title_w = xS(25); // (asset) edit info text color edit_font_color = YELLOW; } -#define VWINDOW_METER_MARGIN 5 - - - - - - - - - +#define VWINDOW_METER_MARGIN xS(5) void SUV::build_bg_data() @@ -969,28 +945,21 @@ void SUV::build_overlays() } - - - - - - - void SUV::draw_rwindow_bg(RecordGUI *gui) { // int y; -// int margin = 50; -// int margin2 = 80; +// int margin = xS(50); +// int margin2 = xS(80); // gui->draw_9segment(recordgui_batch_x - margin, // 0, // mwindow->session->rwindow_w - recordgui_status_x + margin, // recordgui_buttons_y, // rgui_batch); // gui->draw_3segmenth(recordgui_options_x - margin2, -// recordgui_buttons_y - 5, +// recordgui_buttons_y - yS(5), // mwindow->session->rwindow_w - recordgui_options_x + margin2, // rgui_controls); -// y = recordgui_buttons_y - 5 + rgui_controls->get_h(); +// y = recordgui_buttons_y - yS(5) + rgui_controls->get_h(); // gui->draw_9segment(0, // y, // mwindow->session->rwindow_w, @@ -1000,27 +969,21 @@ void SUV::draw_rwindow_bg(RecordGUI *gui) void SUV::draw_rmonitor_bg(RecordMonitorGUI *gui) { -// int margin = 45; -// int panel_w = 300; +// int margin = xS(45); +// int panel_w = xS(300); // int x = rmonitor_meter_x - margin; // int w = mwindow->session->rmonitor_w - x; // if(w < rmonitor_meters->get_w()) w = rmonitor_meters->get_w(); -// gui->clear_box(0, -// 0, +// gui->clear_box(0, 0, // mwindow->session->rmonitor_w, // mwindow->session->rmonitor_h); // gui->draw_9segment(x, -// 0, -// w, +// 0, w, // mwindow->session->rmonitor_h, // rmonitor_meters); } - - - - void SUV::draw_mwindow_bg(MWindowGUI *gui) { // Button bar @@ -1028,22 +991,23 @@ void SUV::draw_mwindow_bg(MWindowGUI *gui) gui->menu_w(), get_image("mbutton_bg")); int pdw = get_image("panel_divider")->get_w(); + int xs2 = xS(2); int x = mbuttons_x; x += 9 * get_image("play")->get_w(); x += mtransport_margin; // the control buttons gui->draw_vframe(get_image("panel_divider"), - x - toggle_margin / 2 - pdw / 2 + 2, + x - toggle_margin / 2 - pdw / 2 + xs2, mbuttons_y - 1); x += 2 * get_image("arrow")->get_w() + toggle_margin; // the mode buttons gui->draw_vframe(get_image("panel_divider"), - x - toggle_margin / 2 - pdw / 2 + 2, + x - toggle_margin / 2 - pdw / 2 + xs2, mbuttons_y - 1); x += 3 * get_image("autokeyframe")->get_w() + toggle_margin; // the state toggle buttons gui->draw_vframe(get_image("panel_divider"), - x - toggle_margin / 2 - pdw / 2 + 2, + x - toggle_margin / 2 - pdw / 2 + xs2, mbuttons_y - 1); // Clock @@ -1069,17 +1033,13 @@ void SUV::draw_mwindow_bg(MWindowGUI *gui) mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ) - mtimebar_h); // Timebar - gui->draw_3segmenth(mtimebar_x, - mtimebar_y, - mtimebar_w, - get_image("timebar_bg")); + gui->draw_3segmenth(mtimebar_x, mtimebar_y, + mtimebar_w, get_image("timebar_bg")); // Zoombar gui->set_color(0x373737); - gui->draw_box(mzoom_x, - mzoom_y, - mwindow->session->mwindow_w, - 25); + gui->draw_box(mzoom_x, mzoom_y, + mwindow->session->mwindow_w, yS(25)); // Scrollbar filler // gui->draw_vframe(get_image("mscroll_filler"), @@ -1087,12 +1047,8 @@ void SUV::draw_mwindow_bg(MWindowGUI *gui) // mcanvas_y + mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ)); // Status - gui->draw_3segmenth(mzoom_x, - mzoom_y, - mzoom_w, - get_image("statusbar")); - - + gui->draw_3segmenth(mzoom_x, mzoom_y, + mzoom_w, get_image("statusbar")); } void SUV::draw_cwindow_bg(CWindowGUI *gui) @@ -1117,7 +1073,7 @@ void SUV::draw_cwindow_bg(CWindowGUI *gui) { gui->draw_3segmenth(cstatus_x, ccomposite_h, - cmeter_x - widget_border - cstatus_x + 100, + cmeter_x - widget_border - cstatus_x + xS(100), get_image("cbuttons_right")); } } @@ -1144,14 +1100,14 @@ void SUV::draw_vwindow_bg(VWindowGUI *gui) { gui->draw_3segmenth(vdivision_x, vcanvas_h, - vmeter_x - widget_border - vdivision_x + 100, + vmeter_x - widget_border - vdivision_x + xS(100), get_image("cbuttons_right")); } // Clock border - gui->draw_3segmenth(vtime_x - 20, + gui->draw_3segmenth(vtime_x - xS(20), vtime_y - 1, - vtime_w + 40, + vtime_w + xS(40), get_image("vclock")); } diff --git a/cinelerra-5.1/plugins/theme_suv/unclear.png b/cinelerra-5.1/plugins/theme_suv/unclear.png deleted file mode 100644 index c785fd8b50ec43f96f9c21c19a22da543d182593..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 544 zcmV+*0^j|KP)tAH`2*;H284`4 z6B;^lbbJC12?!7ZIX#jk%X>dSXNVm918@~|mhO3IZ0TZrmMKA*Zs+anj&|Py7x@2? z=ef)C+-;iAb&qCt1we=7Edbj9An6-`lMup-EX%$(X&W7w*&fL;$$d$ORaNa)RkaJ? zh~(oaipE7zJlxo^nQZ}h4d6C_p8#%p?`+ay0rxW6vre-Bu8d;$TTyVIk!B*@|UC=-uua5Ft{Gav63V?tuGJ28vys0m)H1@ z&8!39IY~-72qAoO&XHuB4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1U7JzX3_ zEP9he0s?-VcVIqn=)i#k3l=VP40Znd=a0mU6mdKI;Vst0OAHX*Z=?k diff --git a/cinelerra-5.1/plugins/theme_suv/unclear_hi.png b/cinelerra-5.1/plugins/theme_suv/unclear_hi.png deleted file mode 100644 index 1ad1a999b8dc9ee330866bf51ae0a7c2c7e2b0df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TSJY5_^ zEP9jYnC0H8XOm(OV`F1$^PO!Lc=dv`d7gnm;8hnDgRBoL4lZWvm$Csdo-hK{c*wfu aGBD)SbBQ}^1)BiPVeoYIb6Mw<&;$V81v6Oy diff --git a/cinelerra-5.1/plugins/theme_suv/unclear_up.png b/cinelerra-5.1/plugins/theme_suv/unclear_up.png deleted file mode 100644 index d633ed4ef71ed6fa860d0400fcfdc4377962428c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9i_eE9I=yaV$A7j9>FUOCf>D-Qyj!3-5i9)`VDOw3%Z`8$E?89ZJ6T-G@yGywpT CnJno5 diff --git a/cinelerra-5.1/plugins/theme_unflat/mask_all_linear.png b/cinelerra-5.1/plugins/theme_unflat/mask_all_linear.png deleted file mode 100644 index fc26659da1f33401f0fd2131a31d4373a0cf8dd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 404 zcmV;F0c-w=P)coH%ho zkPwgr-}Z;#!Cf+l-A%UT+U{PEH>Pd+`n_q>_ke?XalG)}-vU_m%Y`xKt#sHqcSCXs z0Fqj3?fbBIoW!mGob~f30Ov(lAn97AzbHTj;dL9KqWnsd~BNL<6pp2p|ikqpp(IK zp_9P-K&#+=p+KQPYS8pc8e^jN5P^r8*6PAy36@E y(VsW&8wvqzYtWJ+$C6r-Ye}fpe(4zwiu4P+wwC%uD3V(M0000FkgM+x)u0?Usy4j&f7AuOABm@Euy^m;>D%e;M!AT?~)@pL!=b+Ifefd#v z^PBFy=bVr4oO{jz{t=`XC#4kYXWO=WiV6L#qHYLxbFfl00WZ+Dyu3UqBJ%)1G98b{ zAJ=Ui)3Q=D%X^Wbz?6?TwRTg!7K_C}l7~qS1Gw$`{z(xL0E@P54|i0olscjP(88Rz zF|b~auFQ_F&J6a~Zpm5YYORL=tO9r^B4NWY4E{j(QfNQ4aNXO#+b40uc{vgZ<1#7t z0L)sJ^;Sd(0EI#!+t=53Uqn8WOm`%aMQBv<3R$d)#^d5^|3@E z@ut<*)D`ubu9y3tPg|v0B#a8lWDsdSpFaYi8bta_@$WwMkbGz@T^oCS#x(e3bkrIa z5kDx9CX9s2*7_3w}=u){{9&=r{)G6h5D|K5}$WH*+>_*xNO^QjTMP!jA hT4%o%y)OL!z;_0Y_aW{cASeI;002ovPDHLkV1hs*GZp{< diff --git a/cinelerra-5.1/plugins/theme_unflat/mask_button_dn.png b/cinelerra-5.1/plugins/theme_unflat/mask_button_dn.png deleted file mode 100644 index 8bb6c13b68a2ac690264f46f8b0d5a09a31f61bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1UrJzX3_ zEPCHg+Rb}JL4Y+qJb*#eVj+Xlul~%&Go?57aK8&a7}xMbGr^>)>RQz0%6U7i1=nn~ z=wsGiy5f7^%+?N7!($3Nt-sf{d+gs~?HRNqLWuLhu5|&1AN2af{&y{2-mv^f^OD&2 z+u}bKZ};t1-FS^lboR~qchid1u13u)R?>9IO1lzO$++us+x)6lHxr%Gk}#P}7>z~@1_O$szH<90#bHj1|yYtI4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9i_eEs_OyaV$A7j9>FUOCf>D-Qyj!3-5i9tHzdCZPn~Vp*Vi22WQ%mvv4FO#pq0 BD~kXC diff --git a/cinelerra-5.1/plugins/theme_unflat/mask_crv_linear.png b/cinelerra-5.1/plugins/theme_unflat/mask_crv_linear.png deleted file mode 100644 index b49d03a23561aa1124811559fbe0a2ef30c79de2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 481 zcmV<70UrK|P)$IL+#sD<{OT$&o(vTILi`oATO!9$b4?qvV(^SCL+Cvdp$mjEm-EP+v zk(@E+AgwR)^IEOeY7hi>0JgQ(_Ws4*obZZ?|^fGWw8 zI4A%Vi^W%xrvR$$c6&Y%Y>e?-*L?@D0pK$Z8q$Y|to8f-H)D(!zHq{Yh+GT?gFX3C z9l%Nwb?D!T@;eb`5fLG|Y^`Nltd<;yoEFyK1AnBD#rJE$EF~$q|%V{BIny$V9 X_U)EuOoEjK00000NkvXXu0mjfIbFw< diff --git a/cinelerra-5.1/plugins/theme_unflat/mask_crv_smooth.png b/cinelerra-5.1/plugins/theme_unflat/mask_crv_smooth.png deleted file mode 100644 index 7e1f41fddbe471cca046c9b89a1aaf13793fb177..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 626 zcmV-&0*(ENP)0Af!>)~NXHlqkn96E8w9~)0Kj3dB%Vo=gLv;x1Gp?{o#ZtDkaUUUMUrbl z5Ijv|Q^lQ5r_k&5-T^pht^GK>)@rpDj4`hPELv+nC-Ejt-0Ssjl3d>^1%Ohi^Z~#v zNjK8?L~$5~djXVkx!mnEu-ol!kX-cM@0nUG={$gXp-}jhCazYiKS@54v@(_0d%pv~ zi71NdY0{wv9+F&cHk;cgiX|

{Ke1uam^q+AoscXEK?kv0~?3%@}h}(mv;0ZIakI zS0lM#jJdyc|HuO&`JmtLALC}81DG2pj{ot|%^{xw*p=9EyqN%IB+Z6lc%{*3B)(4X z{W$=$#+aQkGm;TV(n@?X0GyPxoXuvvbM8X1SbP%;=Sbd>v^%~L8v}Nv!Ev7o0M5B1 zB(DSbA?X{*0|4&k^ZBdeuH!^;+>L3s+xr2`L{ap%TrPi~hWoej8@&9+xi1`5tN;K2 M07*qoM6N<$f}R@{g8%>k diff --git a/cinelerra-5.1/plugins/theme_unflat/mask_pnt_linear.png b/cinelerra-5.1/plugins/theme_unflat/mask_pnt_linear.png deleted file mode 100644 index 97d7c1f67ff7e31090af2d980703534ac50a18fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 500 zcmVfv@@DRmW>NjMHr2QU||bC-ZCcx<_Xn*iRz)pQBO-f_F#_C3$L1F$V3?YfJ>!RH=E7g0=N*7!?;`|xYOw@ibx*7@t~GUrH)AEt+h)NgOkZ* z1;D9N>TyuZWHL_x&PbLg0$XcW0jvQy8SeFZy()keW6b(kV3IGa6}0LGX-V@#Li$P> q`M*s}vLGT2k|0@#gO2O}qxuBUGK^TH6a?Y`0000`is zv`hbjE=AG7|Dd&-w4J54YqN#Gy)RM(OTk&hQQQ*laqvZwn3wl5*E8MkkMp@-zT6A^ zS1OJN-g}MC)>@9`*8sdv!)Mmovpi3fb>s4`{u(wvPLxiUcQqC!GyR$1uP;deaL%n5 zV=g2a03aDi-i_n<3jm<)HOtRg$&q@!-pweA68u@ii!^-z;AyE;x?iu?e`I+xCkB8h zirxY^wAStb*cs)$_ocyL@CLy1EU(EbIOkRXJgihIucvFn;qVoJb?^P1g~7&{Z2)_< zTJ6_#t=Vk;1n^GM_Cnxpw_B0)ID~L8=i+^mPdc5>jl$q^xx5PCQ=`%No&}EM_?x89 z)oS%YVX&kPk|$Zvkw~5xV>Swb)Aza-LdXRJ_#mk*Y3{QH0QCF)y7&IF02Bb=y}wG5 zG^oP|DPR` u%->f5&&0%%wn!dJf~2iH;G+H4RKEc^K&E$l1(vq}0000S->P)qq2RvkQ{yg-~tksMV2484&YmpEbXzg+8_|9C&G0%Vju;=@JzT6(r z3xeR2q%N=<$MGTXHfx$|h3)ANUS4y;vm1Pp_0P3J(o0}XQfCb?{Uj6@Oc?DqnWo=1bzfisZ_34rFx!sWj{Bv@kLi@WsS$<86zzM4*({U$>UYQ zj^oU{gCg(+fH7u&Rj{OeJ6;rlPq{6r9R$JFGH4iv+rVq!1~^*?wpZ)~C`sxT!NV}z zPSdmtxRN@)?_Xx~cixI9irhGk&w*Va0gjC^UrMFYB|wrSn`xT9usd~u@1Ey9uh;9- zLU0Ct2(Y0Fxo6WJ)LFj#d;L>?0j9mdD>5b*BLDyZ M07*qoM6N<$f_QWEdjJ3c diff --git a/cinelerra-5.1/plugins/theme_unflat/mask_prst_load.png b/cinelerra-5.1/plugins/theme_unflat/mask_prst_load.png deleted file mode 100644 index 89c6fb5a0ee5d69d40af6d0e8d1da9863bbceb03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1SRdb&7< zSoFS~V#s$`L4f7^B9njTKW$sW{qE8BgY`jiQuAAcESSASE42kyC$=y=I3u^w@m%Cy zrIVYgnLm87nl33lNxEV8^_^9_s{*gOE{UCMSXnVQ@q>DZi;~vyPo*Nt0im&; z>we!d;uV`1o|zTEz@c~~)8ORUGhP|G&JSkYH2Cr2V8olMsQb@+3*Oh}JxxD$_rc{I hx4&ov&%aRrj91~kT}r)fQ9sbJ44$rjF6*2UngDt#ZSnvB diff --git a/cinelerra-5.1/plugins/theme_unflat/mask_prst_ovl.png b/cinelerra-5.1/plugins/theme_unflat/mask_prst_ovl.png deleted file mode 100644 index 73027f40e5d1076b3d45f6584c6d4379de19190a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmV&ZxY z?{_lMUJwKy>h=2B7?|uGy9Pw$=syNaU8!=)t{M}-y`N82HkG=Ij|4B25v-T&wJkzk%Pft zZ~;)MRAyE69k3!I8{7@Aud0ht6kUxK257h2Ps`=<7c<)&(@`ETBD4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1Sxdb&7< zSoFS~Y{++5fyZ_KVx7JHmeIQ%w?E7IVJCZ6bxD{)qgzPml6|~N_WvW;EKCiLDJb>J z>1_&9`t-Rl=~?tj2bU866K7Z$4qs|~k-0BE_mf1j#T*MxpR5(HYV%$NPtv_KKc$oL zfTcKtj9S!`Futm1<`>rc;PD$Ck x$1gpNbJU*wsQyuwqxQ@lrkTC#-+ugA!T6co<7R@Rf*jEC44$rjF6*2UngC>oau5Ij diff --git a/cinelerra-5.1/plugins/theme_unflat/mask_prst_sqr.png b/cinelerra-5.1/plugins/theme_unflat/mask_prst_sqr.png deleted file mode 100644 index 508a1e6886f35555834a98de91f6ba8a4296e1e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T?JzX3_ zEP9g@Bv=Cubeyp)es-qbi^tf|uyOWrmrlnY4BU#dI~i}(co~cLOW9<7SaFa!(cs#q krb|J6jg4)3a;yam40kNJ+b4J)204Vm)78&qol`;+03*UWtN;K2 diff --git a/cinelerra-5.1/plugins/theme_unflat/mask_prst_tri.png b/cinelerra-5.1/plugins/theme_unflat/mask_prst_tri.png deleted file mode 100644 index 17cc41a4bc587f563c55cfe77d2e15ffd3a95f66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 475 zcmV<10VMv3P)%^Hv1M6xGhUkqpc(A`lv=ek zWcR=@7K`m95{Y-;_aA|6ppwmIA2uRZO4R^Fq?Jymhqi5xM5G;sI<#18T@jHIFqljx zo!NOZnQQ|+V6WTlhF-nU;^}l+Gt`&4T<&FdZrk<<^RGqZY^`F~b*oCLeW36AerI_f zkH>F-o`~dK*R4h_R!W_ku~jG(UYGZ&RO$`5GM|CeUy41?I|PbAe>@)F289fD2Y6CS z?V8ND#3$x`5kwn8-B{i)++(fvk%-)dm93Ie>Nu0h%(Dx`B2wR^^rzWBt`GO=eZNcr RE`0z1002ovPDHLkV1j=&%2faW diff --git a/cinelerra-5.1/plugins/theme_unflat/mask_prst_trsh.png b/cinelerra-5.1/plugins/theme_unflat/mask_prst_trsh.png deleted file mode 100644 index 4ded9fec5081e474a21b3966b9a7ed3e80878000..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1UDJY5_^ zEP9g@Bv=CubohVz^71loPfyR+h$U9OK0aC=MnBHXH2&{dBGcU2$=PP5k!``{7KXD*`Bxr1%rVf>T@2*i<8kt9WMOt*FCbOLz_9qL WLi47XS$lxCGI+ZBxvX4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq!<_&c|2Vl zLo9lqPOnHhh)ePS@T z;+Bs+DNVdLX54J<*phbbdgip5H!GTEjetDP76v%+3uiB0m$1vm4YO1iH+M{XF5%V}V0U zXYw8>jF~?Q%e6yB^&+llPzNmncubw5QS^_E=a%X~=GfWRY=Rz3Nq?_5)S% rf4rfgpYN3y+Qv?dd?2zb{ue{BK;iM^^KbKkfydzK>gTe~DWM4fFrJ`% diff --git a/cinelerra-5.1/plugins/theme_unflat/mask_pstn_nrm.png b/cinelerra-5.1/plugins/theme_unflat/mask_pstn_nrm.png deleted file mode 100644 index 9b4a3f67ed323936f526f357bb75c9a8e664ed28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1V2JY5_^ zEP9g@Bv=Cubeyp)es-olWnX6}r!upg!^jwLURBB diff --git a/cinelerra-5.1/plugins/theme_unflat/mask_scale_chkd.png b/cinelerra-5.1/plugins/theme_unflat/mask_scale_chkd.png deleted file mode 100644 index 924703e788c24c7de86a7f064cf3af322cda0ba2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 458 zcmV;*0X6=KP)q&QVq+{UwXqRj!bb3M^eKEE zD;rU;2qdJiND+utjMsC2zQe`%xT)= z>g9x3`PG>~A)4#02aFX(-H%bo>TLld3M&c&kczG5tsaN228a-g4c53sBO+695)iDU z0t2KJ!NACZii83k2rP>#(tzOHo4JaoLB{b$&U*Cwzg&1|j_Ndr85g^QY2(&wL}$3c zL2bg}nq|LcfAj(o=oc}qx0FtvV!Z;~T!nKE2egNV_RtWi8rz9uCoS1Djw}*VEm*G@ zJ4Nm^eQW4V42Az#1%6>*rJ^j$PfbdoTR?YYV0vXq+|rX- zwPL+qGo4PE&1Q_p<6m7MBGh%=&0A}`cP%1#@A2MK6a__55XUjY;gHd2#9%NW%QB2H zSZmpAHZ)B`UDs4qg>&x5g&OvM?{nI=r7TOzvOHQ%*EnQ46<-?%0mF9{A@UDZ{Hf#6 xDj-6qDtzNqCFo}+JYK)B6A1#1BgNBh!W$4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9i_eEs_OyaV$A7j9>FUOCf>D-Qyj!3-5i9tHzdCZPn~Vp*Vi22WQ%mvv4FO#pq0 BD~kXC diff --git a/cinelerra-5.1/plugins/theme_unflat/mask_scale_uphi.png b/cinelerra-5.1/plugins/theme_unflat/mask_scale_uphi.png deleted file mode 100644 index 5f2cfe9c6db89377a8cb11c35b0b2ccc1d6d15c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 441 zcmV;q0Y?6bP)%Gk}#P}7>z~@1_O$szH<90#bHj1|yYtI4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TkdAc}; zSoFS~Xy|v?LBRF@8D5P`1xza5ZnI+Jo6p%f1r;z_-HK7*4fo(&zM*XU2Btdwvzhl%=F!Pk<#gJ96KHqpC@z^ia z{NC@M<(9Q~gF?d@yciOm`MAUh9bV6{NA8q*T3pA8+cR%ihBHMl&gjjxa`JX5KQ@Cs zp@2*27UPZoL0k;KC6cQ@@lIZrskdugw9rKv347Pr>ypO#d{1Z1%y&(xK4V`SH}83F zpa{3pF2)b{zSmBT>hJJkh-R3&b(@se`6KQAb+h5Deg@x2?1dJP5oF2gX0h)C#Q5g`I_xm-d81GmIsgYSvM zZUwwBu>rTlk18IIQ?J*b`i({d%d)<_0~qg#|E^-O$Y?Y|YyHr_TrT*&&u}=TQmK4; z7m*wI<8P*E((QKX^?F#Ah39!s6MLSAX_~ZJEe3-Dwrz90UJ((LZQGJgrvWIJ%e32V zY}@{?-kwe;X0sWt>waF4AP9amAzEvW$Kx%rWm%F;Chuk=doI??&J1IB0{Ir;cz&7@sw$r5{t$Dv76uP+r&TB z>yD6!ptTMatdx4qJ&s1BL>$LqyVIF7>~dZ1vW{ppRq00000NkvXXu0mjf D2r~KB diff --git a/cinelerra-5.1/plugins/theme_unflat/mask_scale_xy.png b/cinelerra-5.1/plugins/theme_unflat/mask_scale_xy.png deleted file mode 100644 index 3eb5b522fa7e003708287a4812293850469aa87b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 667 zcmV;M0%ZM(P)}R0h^&c7KyqH=1pw9@QIK?N zs~u-qcIf;58Gx%r>TMW?1D6wq;R%43*4pbNH;eRKMBcCLIEtc@a17u%fSn{sUZ4hR z?SN#Tei5g8g|h5#TUBc;@jhE6@P4A$BKfF~p`iO8F}@5|8Wcoj&l7thw;@Eab_X0zMV z>GZDKtuv^G=ab3gUYe#Ge-zI1yqo9wqq?Zpdbn($Bzq##t?Mis-Zp@BYi(mtKy#oZ zdnCUAcwNzPgE)=@-}k?wxFBVx^_K%ck|a9-N=xPdZo2<+rDML2cYMa1|;tTI4Bbpk4d^-%}JgBI8{o0b2xLQ)G5wy=dbNo_qk$4nx=aq z@<~MYvn)G|qNuWb>L}Lc7RfHj4XyQqi}?R2egcaS@k$Nxqlf?i002ovPDHLkV1gCL BCXN6A diff --git a/cinelerra-5.1/plugins/theme_unflat/mask_scale_xydown.png b/cinelerra-5.1/plugins/theme_unflat/mask_scale_xydown.png deleted file mode 100644 index 4d5fe054b59c9164fff70c7fd562b4aedada90b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 943 zcmV;g15o^lP)rpV3i^L07`;2-4{^vcX_LRn>2SHe)atkcAN64i-Wn z11O53-`w5ZrBbPo&*#bIa@6bfe}tG!Ci?sP85|s>yStmcy*+@R#=nD0r4l}$kJ;H- z6h-0g?vCs0Yi@6EDHI9-*zISg_6e06oj$Hxa|vl)QP%S%pAPd^>MR4P#_ zm1t{gV_;wafJUQ1E|=4d<)(2ns;Y8xbA#P(=i=f5zu%7#f@n1Q3BI_v$il(`i9`aA z$3vx3p<1o}I_+PLo0e9qm9w)mG)*HA2%u>ikw^r9<>h6TmXXrsr_+hiXrx#y0+3^N6rP@*bVkdMH$Fa&)oSJb{+^AE4c6D!IXXJx@bFN# z-`?Iv(=>kk_<`5!*_I2;ay5NvL45)Ow6hr{}MBoe`7G7$_0snu%C z&CO9Rmp}FU7h|*8%-Gl%7K?>oFi0pAA`}XJspJ0sKDAnnot+&3dU|>=8jaNJ_14Bs zXfyNk^K^7{kW41^ad){~_*Xwm2A0K&se&+S{ zRo_#sR(W}O;o;%o)3kX!o?jy^gh10YebMQ35{*VlrBY-vnU=rJVzEfESR@{gW3gD6 zoSek#_0rqhi>j(fl7!UW-Yy!A#+QfxPfR8gvfJ$@pU)$N_!g)nNx0o^{s8)J)kQ-b RiL3ws002ovPDHLkV1l+#vV#Bs diff --git a/cinelerra-5.1/plugins/theme_unflat/mask_scale_y.png b/cinelerra-5.1/plugins/theme_unflat/mask_scale_y.png deleted file mode 100644 index cf4055de6855d4c0897e3b7ec958e03e0836b247..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 387 zcmV-}0et?6P)1002ovPDHLkV1ilSpX>kt diff --git a/cinelerra-5.1/plugins/theme_unflat/mask_scale_ydown.png b/cinelerra-5.1/plugins/theme_unflat/mask_scale_ydown.png deleted file mode 100644 index 581242950fd50ecf6738c7eb5729b042c05bb5b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 547 zcmV+;0^I$HP)sun7R!))6or4%^l_=Fyh2g>C# zSg}~7TCE1g*hj!bgw1Ay6z3eC=Y0hF6z3c%B1#OlEDJ=0?RFdKBO;^#Kx-Wf6+)oh zZi91<-EN2L^%|X;h@iEOJ)KSmxm*rH2=scrNG}nA1Aymwk;k@eRI61#jcJ;&EGyKX zC~-EMMYr1xT(#ft!!V4$CvG;Ia9tOUd=aUi8cqtOUWoO&h>(_*m*)Ra|i z(R<_eRGj~S}|*006LFul-u7R6@O82LR0H^I!Xz5P~w9Oei>? z&tp2BqEIOOs9!D@j7B4z&*wnT?RJY_kmK=)@pv3)o=he<91ee9X{|L@s}+{Zr4Myo z7gEZ|Ply?YK|~b#6t7P*o6W#E$8b2r>2wP9GRD5a_xn8-3;?ZG3jiRcjP#|`X)x0? lX}{kiN$MnGjGXU@*8&vP*IYz*b3rBYBc#+1pmD^?hCM+5~Bu?uy8S;Xcmi^GB;*7rvWwE{x;&y_www@ROvf>U209-ZC>&)zdUhx6CXB5Cb?` zEEf0M?RH*iyoC3@3*ZF+lHAMl{IiHqL^@{n9KbJ2i~J?Sg_!}twl=BBLqj>&fb00004nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1UrJzX3_ zEPCHg+Rb}JL4Y+qJb*#eVj+Xlul~%&Go?57aK8&a7}xMbGr^>)>RQz0%6U7i1=nn~ z=wsGiy5f7^%+?N7!($3Nt-sf{d+gs~?HRNqLWuLhu5|&1AN2af{&y{2-mv^f^OD&2 z+u}bKZ};t1-FS^lboR~qchid1u13u)R?>9IO1lzO$++us+x)6lHxr%Gk}#P}7>z~@1_O$szH<90#bHj1|yYtI4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T4JY5_^ zEP9i_eEs_OyaV$A7j9>FUOCf>D-Qyj!3-5i9tHzdCZPn~Vp*Vi22WQ%mvv4FO#pq0 BD~kXC diff --git a/cinelerra-5.1/plugins/theme_unflat/unflattheme.C b/cinelerra-5.1/plugins/theme_unflat/unflattheme.C index 7c381fb3..8f10237b 100644 --- a/cinelerra-5.1/plugins/theme_unflat/unflattheme.C +++ b/cinelerra-5.1/plugins/theme_unflat/unflattheme.C @@ -47,8 +47,6 @@ #include "vwindowgui.h" - - PluginClient* new_plugin(PluginServer *server) { return new UNFLATTHEMEMain(server); @@ -74,12 +72,6 @@ Theme* UNFLATTHEMEMain::new_theme() } - - - - - - UNFLATTHEME::UNFLATTHEME() : Theme() { @@ -119,7 +111,7 @@ void UNFLATTHEME::initialize() resources->popup_title_text = 0xbfbfbf; resources->menu_item_text = 0xbfbfbf; resources->menu_highlighted_fontcolor = WHITE; - resources->generic_button_margin = 30; + resources->generic_button_margin = xS(30); resources->pot_needle_color = resources->text_default; resources->pot_offset = 1; resources->progress_text = resources->text_default; @@ -130,13 +122,13 @@ void UNFLATTHEME::initialize() resources->menu_down = 0x4b4b4b; resources->menu_up = 0x4b4b4b; resources->menu_shadow = 0x202020; - resources->popupmenu_margin = 15; - resources->popupmenu_triangle_margin = 15; + resources->popupmenu_margin = xS(15); + resources->popupmenu_triangle_margin = xS(15); resources->listbox_title_color = 0xbfbfbf; - resources->listbox_title_margin = 20; - resources->listbox_title_hotspot = 20; + resources->listbox_title_margin = xS(20); + resources->listbox_title_hotspot = xS(20); resources->listbox_border1 = 0x1a1a1a; resources->listbox_border2 = 0x333333; resources->listbox_border3 = 0x333333; @@ -146,7 +138,7 @@ void UNFLATTHEME::initialize() resources->listbox_bg = 0; resources->listbox_text = 0xbfbfbf; - resources->filebox_margin = 130; + resources->filebox_margin = yS(130); resources->file_color = 0xbfbfbf; resources->directory_color = 0xa0a0ff; @@ -389,7 +381,7 @@ void UNFLATTHEME::initialize() resources->bar_data = new_image("bar", "bar.png"); resources->check = new_image("check", "check.png"); - resources->min_menu_w = 96; + resources->min_menu_w = xS(96); resources->menu_popup_bg = new_image("menu_popup_bg.png"); resources->menu_item_bg = new_image_set(3, "menuitem_up.png", @@ -521,7 +513,7 @@ void UNFLATTHEME::initialize() "vscroll_right_up.png", "vscroll_right_hi.png", "vscroll_right_dn.png"); - resources->scroll_minhandle = 20; + resources->scroll_minhandle = xS(20); new_button("prevtip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "prev_tip"); @@ -539,17 +531,17 @@ void UNFLATTHEME::initialize() preferences_category_overlap = 0; preferencescategory_x = 0; - preferencescategory_y = 5; - preferencestitle_x = 5; - preferencestitle_y = 10; - preferencesoptions_x = 5; + preferencescategory_y = yS(5); + preferencestitle_x = xS(5); + preferencestitle_y = yS(10); + preferencesoptions_x = xS(5); preferencesoptions_y = 0; // MWindow message_normal = resources->text_default; audio_color = GREEN; - mtransport_margin = 10; - toggle_margin = 10; + mtransport_margin = xS(10); + toggle_margin = xS(10); new_button("pane.png", "pane_up.png", "pane_hi.png", "pane_dn.png", "pane"); new_image_set("xpane", 3, "xpane_up.png", "xpane_hi.png", "xpane_dn.png"); @@ -600,23 +592,21 @@ void UNFLATTHEME::initialize() setformat_w = get_image("setformat_bg")->get_w(); setformat_h = get_image("setformat_bg")->get_h(); - setformat_x1 = 15; - setformat_x2 = 110; - - setformat_x3 = 315; - setformat_x4 = 425; - setformat_y1 = 20; - setformat_y2 = 85; - setformat_y3 = 125; - setformat_margin = 30; - setformat_channels_x = 25; - setformat_channels_y = 242; - setformat_channels_w = 250; - setformat_channels_h = 250; - - loadfile_pad = get_image_set("loadmode_new")[0]->get_h() + 10; - browse_pad = 20; - + setformat_x1 = xS(15); + setformat_x2 = xS(110); + setformat_x3 = xS(315); + setformat_x4 = xS(425); + setformat_y1 = yS(20); + setformat_y2 = yS(85); + setformat_y3 = yS(125); + setformat_margin = xS(30); + setformat_channels_x = xS(25); + setformat_channels_y = yS(242); + setformat_channels_w = xS(250); + setformat_channels_h = yS(250); + + loadfile_pad = get_image_set("loadmode_new")[0]->get_h() + yS(10); + browse_pad = yS(20); new_toggle("playpatch.png", "playpatch_up.png", @@ -845,8 +835,6 @@ void UNFLATTHEME::initialize() new_button("stop.png", transport_up, transport_hi, transport_dn, "stop"); new_button("stop.png", transport_up, transport_hi, transport_dn, "stoprec"); - - // CWindow icons new_image("cwindow_inactive", "cwindow_inactive.png"); new_image("cwindow_active", "cwindow_active.png"); @@ -865,10 +853,6 @@ void UNFLATTHEME::initialize() "preferencesbutton_uphi.png", "preferencesbutton_dnlo.png"); - - - - new_image_set("color3way_point", 3, "color3way_up.png", @@ -928,7 +912,7 @@ void UNFLATTHEME::initialize() recordgui_variable_color = RED; channel_position_color = MEYELLOW; - resources->meter_title_w = 25; + resources->meter_title_w = xS(25); // (asset) edit info text color edit_font_color = YELLOW; @@ -967,18 +951,17 @@ void UNFLATTHEME::build_overlays() void UNFLATTHEME::draw_rwindow_bg(RecordGUI *gui) { // int y; -// int margin = 50; -// int margin2 = 80; -// gui->draw_9segment(recordgui_batch_x - margin, -// 0, +// int margin = xS(50); +// int margin2 = xS(80); +// gui->draw_9segment(recordgui_batch_x - margin, 0, // mwindow->session->rwindow_w - recordgui_status_x + margin, // recordgui_buttons_y, // rgui_batch); // gui->draw_3segmenth(recordgui_options_x - margin2, -// recordgui_buttons_y - 5, +// recordgui_buttons_y - yS(5), // mwindow->session->rwindow_w - recordgui_options_x + margin2, // rgui_controls); -// y = recordgui_buttons_y - 5 + rgui_controls->get_h(); +// y = recordgui_buttons_y - yS(5) + rgui_controls->get_h(); // gui->draw_9segment(0, // y, // mwindow->session->rwindow_w, @@ -988,27 +971,21 @@ void UNFLATTHEME::draw_rwindow_bg(RecordGUI *gui) void UNFLATTHEME::draw_rmonitor_bg(RecordMonitorGUI *gui) { -// int margin = 45; -// int panel_w = 300; +// int margin = xS(45); +// int panel_w = xS(300); // int x = rmonitor_meter_x - margin; // int w = mwindow->session->rmonitor_w - x; // if(w < rmonitor_meters->get_w()) w = rmonitor_meters->get_w(); -// gui->clear_box(0, -// 0, +// gui->clear_box(0, 0, // mwindow->session->rmonitor_w, // mwindow->session->rmonitor_h); -// gui->draw_9segment(x, -// 0, +// gui->draw_9segment(x, 0, // w, // mwindow->session->rmonitor_h, // rmonitor_meters); } - - - - void UNFLATTHEME::draw_mwindow_bg(MWindowGUI *gui) { // Button bar @@ -1020,31 +997,28 @@ void UNFLATTHEME::draw_mwindow_bg(MWindowGUI *gui) x += 9 * get_image("play")->get_w(); x += mtransport_margin; // the control buttons + int xs2 = xS(2); gui->draw_vframe(get_image("panel_divider"), - x - toggle_margin / 2 - pdw / 2 + 2, + x - toggle_margin / 2 - pdw / 2 + xs2, mbuttons_y - 1); x += 2 * get_image("arrow")->get_w() + toggle_margin; // the mode buttons gui->draw_vframe(get_image("panel_divider"), - x - toggle_margin / 2 - pdw / 2 + 2, + x - toggle_margin / 2 - pdw / 2 + xs2, mbuttons_y - 1); x += 3 * get_image("autokeyframe")->get_w() + toggle_margin; // the state toggle buttons gui->draw_vframe(get_image("panel_divider"), - x - toggle_margin / 2 - pdw / 2 + 2, + x - toggle_margin / 2 - pdw / 2 + xs2, mbuttons_y - 1); // Clock - gui->draw_3segmenth(0, - mbuttons_y - 1 + get_image("mbutton_bg")->get_h(), - get_image("patchbay_bg")->get_w(), - get_image("clock_bg")); + gui->draw_3segmenth(0, mbuttons_y - 1 + get_image("mbutton_bg")->get_h(), + get_image("patchbay_bg")->get_w(), get_image("clock_bg")); // Patchbay - gui->draw_3segmentv(patchbay_x, - patchbay_y, - patchbay_h, - get_image("patchbay_bg")); + gui->draw_3segmentv(patchbay_x, patchbay_y, + patchbay_h, get_image("patchbay_bg")); // Track canvas gui->set_color(BLACK); @@ -1054,17 +1028,13 @@ void UNFLATTHEME::draw_mwindow_bg(MWindowGUI *gui) mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ) - mtimebar_h); // Timebar - gui->draw_3segmenth(mtimebar_x, - mtimebar_y, - mtimebar_w, - get_image("timebar_bg")); + gui->draw_3segmenth(mtimebar_x, mtimebar_y, + mtimebar_w, get_image("timebar_bg")); // Zoombar gui->set_color(0x333333); - gui->draw_box(mzoom_x, - mzoom_y, - mwindow->session->mwindow_w, - 25); + gui->draw_box(mzoom_x, mzoom_y, + mwindow->session->mwindow_w, yS(25)); // Scrollbar filler // gui->draw_vframe(get_image("mscroll_filler"), @@ -1072,10 +1042,8 @@ void UNFLATTHEME::draw_mwindow_bg(MWindowGUI *gui) // mcanvas_y + mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ)); // Status - gui->draw_3segmenth(mzoom_x, - mzoom_y, - mzoom_w, - get_image("statusbar")); + gui->draw_3segmenth(mzoom_x, mzoom_y, + mzoom_w, get_image("statusbar")); } @@ -1088,21 +1056,16 @@ void UNFLATTHEME::draw_cwindow_bg(CWindowGUI *gui) if(mwindow->edl->session->cwindow_meter) { - gui->draw_3segmenth(cstatus_x, - ccomposite_h, - cmeter_x - widget_border - cstatus_x, - get_image("cbuttons_right")); - gui->draw_9segment(cmeter_x - widget_border, - 0, + gui->draw_3segmenth(cstatus_x, ccomposite_h, + cmeter_x - widget_border - cstatus_x, get_image("cbuttons_right")); + gui->draw_9segment(cmeter_x - widget_border, 0, mwindow->session->cwindow_w - cmeter_x + widget_border, - mwindow->session->cwindow_h, - get_image("cmeter_bg")); + mwindow->session->cwindow_h, get_image("cmeter_bg")); } else { - gui->draw_3segmenth(cstatus_x, - ccomposite_h, - cmeter_x - widget_border - cstatus_x + 100, + gui->draw_3segmenth(cstatus_x, ccomposite_h, + cmeter_x - widget_border - cstatus_x + xS(100), get_image("cbuttons_right")); } } @@ -1115,29 +1078,22 @@ void UNFLATTHEME::draw_vwindow_bg(VWindowGUI *gui) get_image("vbuttons_left")); if(mwindow->edl->session->vwindow_meter) { - gui->draw_3segmenth(vdivision_x, - vcanvas_h, - vmeter_x - widget_border - vdivision_x, - get_image("cbuttons_right")); - gui->draw_9segment(vmeter_x - widget_border, - 0, + gui->draw_3segmenth(vdivision_x, vcanvas_h, + vmeter_x - widget_border - vdivision_x, get_image("cbuttons_right")); + gui->draw_9segment(vmeter_x - widget_border, 0, mwindow->session->vwindow_w - vmeter_x + widget_border, - mwindow->session->vwindow_h, - get_image("cmeter_bg")); + mwindow->session->vwindow_h, get_image("cmeter_bg")); } else { - gui->draw_3segmenth(vdivision_x, - vcanvas_h, - vmeter_x - widget_border - vdivision_x + 100, + gui->draw_3segmenth(vdivision_x, vcanvas_h, + vmeter_x - widget_border - vdivision_x + xS(100), get_image("cbuttons_right")); } // Clock border - gui->draw_3segmenth(vtime_x - 20, - vtime_y - 1, - vtime_w + 40, - get_image("vclock")); + gui->draw_3segmenth(vtime_x - xS(20), vtime_y - 1, + vtime_w + xS(40), get_image("vclock")); } diff --git a/cinelerra-5.1/plugins/threshold/thresholdwindow.C b/cinelerra-5.1/plugins/threshold/thresholdwindow.C index 7a22ba33..9612ab13 100644 --- a/cinelerra-5.1/plugins/threshold/thresholdwindow.C +++ b/cinelerra-5.1/plugins/threshold/thresholdwindow.C @@ -25,8 +25,8 @@ #include "threshold.h" #include "thresholdwindow.h" -#define COLOR_W 100 -#define COLOR_H 30 +#define COLOR_W xS(100) +#define COLOR_H yS(30) @@ -428,7 +428,7 @@ int ThresholdHighColorThread::handle_new_color(int output, int alpha) ThresholdWindow::ThresholdWindow(ThresholdMain *plugin) -: PluginClientWindow(plugin, 450, 450, 450, 450, 1) +: PluginClientWindow(plugin, xS(450), yS(450), xS(450), yS(450), 1) { this->plugin = plugin; this->min = 0; @@ -449,46 +449,48 @@ ThresholdWindow::~ThresholdWindow() void ThresholdWindow::create_objects() { - int x = 10; - int y = 10; + int xs10 = xS(10), xs30 = xS(30), xs100 = xS(100); + int ys10 = yS(10), ys160 = yS(160); + int x = xs10; + int y = ys10; add_subwindow(canvas = new ThresholdCanvas(plugin, this, x, y, - get_w() - x - 10, - get_h() - 160)); + get_w() - x - xs10, + get_h() - ys160)); canvas->draw(); - y += canvas->get_h() + 10; + y += canvas->get_h() + ys10; add_subwindow(plot = new ThresholdPlot(plugin, x, y)); - y += plot->get_h() + 10; + y += plot->get_h() + ys10; add_subwindow(low_color = new ThresholdLowColorButton(plugin, this, x, y)); - low_color_x = x + 10; - low_color_y = y + low_color->get_h() + 10; - x += low_color->get_w() + 10; + low_color_x = x + xs10; + low_color_y = y + low_color->get_h() + ys10; + x += low_color->get_w() + xs10; add_subwindow(mid_color = new ThresholdMidColorButton(plugin, this, x, y)); - mid_color_x = x + 10; - mid_color_y = y + mid_color->get_h() + 10; - x += mid_color->get_w() + 10; + mid_color_x = x + xs10; + mid_color_y = y + mid_color->get_h() + ys10; + x += mid_color->get_w() + xs10; add_subwindow(high_color = new ThresholdHighColorButton(plugin, this, x, y)); - high_color_x = x + 10; - high_color_y = y + high_color->get_h() + 10; + high_color_x = x + xs10; + high_color_y = y + high_color->get_h() + ys10; - y += low_color->get_h() + COLOR_H + 10 + 10; + y += low_color->get_h() + COLOR_H + ys10 + ys10; - x = 30; + x = xs30; BC_Title * min_title; add_subwindow(min_title = new BC_Title(x, y, _("Min:"))); - x += min_title->get_w() + 10; + x += min_title->get_w() + xs10; min = new ThresholdMin(plugin, this, x, y, - 100); + xs100); min->create_objects(); min->set_increment(0.1); @@ -496,12 +498,12 @@ void ThresholdWindow::create_objects() x = mid_color->get_x() + mid_color->get_w() / 2; BC_Title * max_title; add_subwindow(max_title = new BC_Title(x, y, _("Max:"))); - x += max_title->get_w() + 10; + x += max_title->get_w() + xs10; max = new ThresholdMax(plugin, this, x, y, - 100); + xs100); max->create_objects(); max->set_increment(0.1); diff --git a/cinelerra-5.1/plugins/timeavg/timeavgwindow.C b/cinelerra-5.1/plugins/timeavg/timeavgwindow.C index 90ac8e38..cac4e5d1 100644 --- a/cinelerra-5.1/plugins/timeavg/timeavgwindow.C +++ b/cinelerra-5.1/plugins/timeavg/timeavgwindow.C @@ -29,7 +29,7 @@ TimeAvgWindow::TimeAvgWindow(TimeAvgMain *client) - : PluginClientWindow(client, 250, 400, 250, 400, 0) + : PluginClientWindow(client, xS(250), yS(400), xS(250), yS(400), 0) { this->client = client; } @@ -40,53 +40,55 @@ TimeAvgWindow::~TimeAvgWindow() void TimeAvgWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10); + int ys5 = yS(5), ys10 = yS(10), ys30 = yS(30); + int x = xs10, y = ys10; BC_Bar *bar; BC_Title *title; add_tool(title = new BC_Title(x, y, _("Frame count:"))); - y += title->get_h() + 5; + y += title->get_h() + ys5; add_tool(total_frames = new TimeAvgSlider(client, x, y)); - y += 30; + y += ys30; add_tool(paranoid = new TimeAvgParanoid(client, x, y)); - y += 30; + y += ys30; add_tool(no_subtract = new TimeAvgNoSubtract(client, x, y)); - y += 30; - add_tool(bar = new BC_Bar(x, y, get_w() - x * 2)); - y += bar->get_h() + 5; + y += ys30; + add_tool(bar = new BC_Bar(x, y, get_w() - x * xS(2))); + y += bar->get_h() + ys5; add_tool(avg = new TimeAvgAvg(client, this, x, y)); - y += 30; + y += ys30; add_tool(accum = new TimeAvgAccum(client, this, x, y)); - y += 30; - add_tool(bar = new BC_Bar(x, y, get_w() - x * 2)); - y += bar->get_h() + 5; + y += ys30; + add_tool(bar = new BC_Bar(x, y, get_w() - x * xS(2))); + y += bar->get_h() + ys5; add_tool(replace = new TimeAvgReplace(client, this, x, y)); - y += 30; + y += ys30; add_tool(new BC_Title(x, y, _("Threshold:"))); - y += title->get_h() + 5; + y += title->get_h() + ys5; add_tool(threshold = new TimeThresholdSlider(client, x, y)); - y += 30; + y += ys30; add_tool(new BC_Title(x, y, _("Border:"))); - y += title->get_h() + 5; + y += title->get_h() + ys5; add_tool(border = new TimeBorderSlider(client, x, y)); - y += 30; + y += ys30; - add_tool(bar = new BC_Bar(x, y, get_w() - x * 2)); - y += bar->get_h() + 5; + add_tool(bar = new BC_Bar(x, y, get_w() - x * xS(2))); + y += bar->get_h() + ys5; add_tool(greater = new TimeAvgGreater(client, this, x, y)); - y += 30; + y += ys30; add_tool(less = new TimeAvgLess(client, this, x, y)); - y += 30; + y += ys30; update_toggles(); show_window(); @@ -125,13 +127,7 @@ void TimeAvgWindow::update_toggles() TimeAvgSlider::TimeAvgSlider(TimeAvgMain *client, int x, int y) - : BC_ISlider(x, - y, - 0, - 190, - 200, - 1, - MAX_FRAMES, + : BC_ISlider(x, y, 0, xS(190),yS(200), 1,MAX_FRAMES, client->config.frames) { this->client = client; @@ -151,13 +147,7 @@ int TimeAvgSlider::handle_event() TimeThresholdSlider::TimeThresholdSlider(TimeAvgMain *client, int x, int y) - : BC_ISlider(x, - y, - 0, - 190, - 200, - 1, - 255, + : BC_ISlider(x, y, 0, xS(190),yS(200), 1,255, client->config.threshold) { this->client = client; @@ -176,13 +166,7 @@ int TimeThresholdSlider::handle_event() TimeBorderSlider::TimeBorderSlider(TimeAvgMain *client, int x, int y) - : BC_ISlider(x, - y, - 0, - 190, - 200, - 0, - 8, + : BC_ISlider(x, y, 0, xS(190),yS(200), 0,8, client->config.border) { this->client = client; diff --git a/cinelerra-5.1/plugins/timefront/timefront.C b/cinelerra-5.1/plugins/timefront/timefront.C index 47a70059..eb2d83d5 100644 --- a/cinelerra-5.1/plugins/timefront/timefront.C +++ b/cinelerra-5.1/plugins/timefront/timefront.C @@ -120,10 +120,10 @@ void TimeFrontConfig::interpolate(TimeFrontConfig &prev, TimeFrontWindow::TimeFrontWindow(TimeFrontMain *plugin) : PluginClientWindow(plugin, - 350, - 290, - 350, - 290, + xS(350), + yS(290), + xS(350), + yS(290), 0) { this->plugin = plugin; @@ -150,28 +150,30 @@ TimeFrontWindow::~TimeFrontWindow() void TimeFrontWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10); + int ys10 = yS(10), ys35 = yS(35), ys40 = yS(40), ys140 = yS(140); + int x = xs10, y = ys10; BC_Title *title; add_subwindow(title = new BC_Title(x, y, _("Type:"))); add_subwindow(shape = new TimeFrontShape(plugin, this, - x + title->get_w() + 10, + x + title->get_w() + xs10, y)); shape->create_objects(); - y += 40; + y += ys40; shape_x = x; shape_y = y; - y += 140; + y += ys140; add_subwindow(title = new BC_Title(x, y, _("Time range:"))); - add_subwindow(frame_range = new TimeFrontFrameRange(plugin, x + title->get_w() + 10, y)); - frame_range_x = x + frame_range->get_w() + 10; + add_subwindow(frame_range = new TimeFrontFrameRange(plugin, x + title->get_w() + xs10, y)); + frame_range_x = x + frame_range->get_w() + xs10; frame_range_y = y; - y += 35; + y += ys35; update_shape(); add_subwindow(invert = new TimeFrontInvert(plugin, x, y)); - add_subwindow(show_grayscale = new TimeFrontShowGrayscale(plugin, x+ 100, y)); + add_subwindow(show_grayscale = new TimeFrontShowGrayscale(plugin, x+ xS(100), y)); show_window(); @@ -199,23 +201,23 @@ void TimeFrontWindow::update_shape() if(!angle) { add_subwindow(angle_title = new BC_Title(x, y, _("Angle:"))); - add_subwindow(angle = new TimeFrontAngle(plugin, x + angle_title->get_w() + 10, y)); + add_subwindow(angle = new TimeFrontAngle(plugin, x + angle_title->get_w() + xS(10), y)); } if(!rate){ - y = shape_y + 40; + y = shape_y + yS(40); add_subwindow(rate_title = new BC_Title(x, y, _("Rate:"))); add_subwindow(rate = new TimeFrontRate(plugin, - x + rate_title->get_w() + 10, + x + rate_title->get_w() + xS(10), y)); rate->create_objects(); - y += 40; + y += yS(40); add_subwindow(in_radius_title = new BC_Title(x, y, _("Inner radius:"))); - add_subwindow(in_radius = new TimeFrontInRadius(plugin, x + in_radius_title->get_w() + 10, y)); - y += 30; + add_subwindow(in_radius = new TimeFrontInRadius(plugin, x + in_radius_title->get_w() + xS(10), y)); + y += yS(30); add_subwindow(out_radius_title = new BC_Title(x, y, _("Outer radius:"))); - add_subwindow(out_radius = new TimeFrontOutRadius(plugin, x + out_radius_title->get_w() + 10, y)); - y += 35; + add_subwindow(out_radius = new TimeFrontOutRadius(plugin, x + out_radius_title->get_w() + xS(10), y)); + y += yS(35); } } else @@ -233,32 +235,32 @@ void TimeFrontWindow::update_shape() { add_subwindow(center_x_title = new BC_Title(x, y, _("Center X:"))); add_subwindow(center_x = new TimeFrontCenterX(plugin, - x + center_x_title->get_w() + 10, + x + center_x_title->get_w() + xS(10), y)); - x += center_x_title->get_w() + 10 + center_x->get_w() + 10; + x += center_x_title->get_w() + xS(10) + center_x->get_w() + xS(10); add_subwindow(center_y_title = new BC_Title(x, y, _("Center Y:"))); add_subwindow(center_y = new TimeFrontCenterY(plugin, - x + center_y_title->get_w() + 10, + x + center_y_title->get_w() + xS(10), y)); } if(!rate) { - y = shape_y + 40; + y = shape_y + yS(40); x = shape_x; add_subwindow(rate_title = new BC_Title(x, y, _("Rate:"))); add_subwindow(rate = new TimeFrontRate(plugin, - x + rate_title->get_w() + 10, + x + rate_title->get_w() + xS(10), y)); rate->create_objects(); - y += 40; + y += yS(40); add_subwindow(in_radius_title = new BC_Title(x, y, _("Inner radius:"))); - add_subwindow(in_radius = new TimeFrontInRadius(plugin, x + in_radius_title->get_w() + 10, y)); - y += 30; + add_subwindow(in_radius = new TimeFrontInRadius(plugin, x + in_radius_title->get_w() + xS(10), y)); + y += yS(30); add_subwindow(out_radius_title = new BC_Title(x, y, _("Outer radius:"))); - add_subwindow(out_radius = new TimeFrontOutRadius(plugin, x + out_radius_title->get_w() + 10, y)); - y += 35; + add_subwindow(out_radius = new TimeFrontOutRadius(plugin, x + out_radius_title->get_w() + xS(10), y)); + y += yS(35); } } else if(plugin->config.shape == TimeFrontConfig::OTHERTRACK) @@ -292,7 +294,7 @@ void TimeFrontWindow::update_shape() add_subwindow(track_usage_title = new BC_Title(x, y, _("As timefront use:"))); add_subwindow(track_usage = new TimeFrontTrackUsage(plugin, this, - x + track_usage_title->get_w() + 10, + x + track_usage_title->get_w() + xS(10), y)); track_usage->create_objects(); @@ -349,7 +351,7 @@ TimeFrontShape::TimeFrontShape(TimeFrontMain *plugin, TimeFrontWindow *gui, int x, int y) - : BC_PopupMenu(x, y, 230, to_text(plugin->config.shape), 1) + : BC_PopupMenu(x, y, xS(230), to_text(plugin->config.shape), 1) { this->plugin = plugin; this->gui = gui; @@ -397,7 +399,7 @@ int TimeFrontShape::handle_event() TimeFrontTrackUsage::TimeFrontTrackUsage(TimeFrontMain *plugin, TimeFrontWindow *gui, int x, int y) - : BC_PopupMenu(x, y, 140, to_text(plugin->config.track_usage), 1) + : BC_PopupMenu(x, y, xS(140), to_text(plugin->config.track_usage), 1) { this->plugin = plugin; this->gui = gui; @@ -489,11 +491,7 @@ int TimeFrontAngle::handle_event() TimeFrontRate::TimeFrontRate(TimeFrontMain *plugin, int x, int y) - : BC_PopupMenu(x, - y, - 155, - to_text(plugin->config.rate), - 1) + : BC_PopupMenu(x, y, xS(155), to_text(plugin->config.rate), 1) { this->plugin = plugin; } @@ -536,8 +534,8 @@ TimeFrontInRadius::TimeFrontInRadius(TimeFrontMain *plugin, int x, int y) : BC_FSlider(x, y, 0, - 200, - 200, + xS(200), + yS(200), (float)0, (float)100, (float)plugin->config.in_radius) @@ -557,8 +555,8 @@ TimeFrontOutRadius::TimeFrontOutRadius(TimeFrontMain *plugin, int x, int y) : BC_FSlider(x, y, 0, - 200, - 200, + xS(200), + yS(200), (float)0, (float)100, (float)plugin->config.out_radius) @@ -577,8 +575,8 @@ TimeFrontFrameRange::TimeFrontFrameRange(TimeFrontMain *plugin, int x, int y) : BC_ISlider(x, y, 0, - 200, - 200, + xS(200), + yS(200), (int)1, (int)255, (int)plugin->config.frame_range) diff --git a/cinelerra-5.1/plugins/timestretch/timestretch.C b/cinelerra-5.1/plugins/timestretch/timestretch.C index 780c452a..0653a9e2 100644 --- a/cinelerra-5.1/plugins/timestretch/timestretch.C +++ b/cinelerra-5.1/plugins/timestretch/timestretch.C @@ -49,7 +49,7 @@ REGISTER_PLUGIN(TimeStretch) TimeStretchFraction::TimeStretchFraction(TimeStretch *plugin, int x, int y) - : BC_TextBox(x, y, 100, 1, (float)(1.0 / plugin->scale)) + : BC_TextBox(x, y, xS(100), 1, (float)(1.0 / plugin->scale)) { this->plugin = plugin; } @@ -118,12 +118,12 @@ int TimeStretchTime::handle_event() TimeStretchWindow::TimeStretchWindow(TimeStretch *plugin, int x, int y) : BC_Window(_(PROGRAM_NAME ": Time stretch"), - x - 160, - y - 75, - 320, - 200, - 320, - 200, + x - xS(160), + y - yS(75), + xS(320), + yS(200), + xS(320), + yS(200), 0, 0, 1) @@ -138,7 +138,7 @@ TimeStretchWindow::~TimeStretchWindow() void TimeStretchWindow::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); BC_Title *title; add_subwindow(title = new BC_Title(x, y, _("Fraction of original speed:"))); diff --git a/cinelerra-5.1/plugins/timestretchrt/timestretchrt.C b/cinelerra-5.1/plugins/timestretchrt/timestretchrt.C index 1761782b..c84dca49 100644 --- a/cinelerra-5.1/plugins/timestretchrt/timestretchrt.C +++ b/cinelerra-5.1/plugins/timestretchrt/timestretchrt.C @@ -93,10 +93,10 @@ void TimeStretchRTConfig::boundaries() TimeStretchRTWindow::TimeStretchRTWindow(TimeStretchRT *plugin) : PluginClientWindow(plugin, - 210, - 200, - 200, - 210, + xS(210), + yS(200), + xS(200), + yS(210), 0) { this->plugin = plugin; @@ -108,7 +108,7 @@ TimeStretchRTWindow::~TimeStretchRTWindow() void TimeStretchRTWindow::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); int margin = plugin->get_theme()->widget_border; BC_Title *title = 0; diff --git a/cinelerra-5.1/plugins/titler/titler.C b/cinelerra-5.1/plugins/titler/titler.C index c1e46f20..d9489cb3 100644 --- a/cinelerra-5.1/plugins/titler/titler.C +++ b/cinelerra-5.1/plugins/titler/titler.C @@ -105,8 +105,8 @@ TitleConfig::TitleConfig() wtext = 0; wsize = 0; wlen = 0; title_x = title_y = 0.0; title_w = title_h = 0; - window_w = 860; - window_h = 460; + window_w = xS(860); + window_h = yS(460); next_keyframe_position = 0; prev_keyframe_position = 0; timecode = 0; diff --git a/cinelerra-5.1/plugins/titler/titlerwindow.C b/cinelerra-5.1/plugins/titler/titlerwindow.C index ba93e199..4b91787c 100644 --- a/cinelerra-5.1/plugins/titler/titlerwindow.C +++ b/cinelerra-5.1/plugins/titler/titlerwindow.C @@ -56,7 +56,8 @@ static const int timeunit_formats[] = TitleWindow::TitleWindow(TitleMain *client) : PluginClientWindow(client, - client->config.window_w, client->config.window_h, 100, 100, 1) + client->config.window_w, client->config.window_h, + xS(100), yS(100), 1) { //printf("TitleWindow::TitleWindow %d %d %d\n", __LINE__, client->config.window_w, client->config.window_h); this->client = client; @@ -141,12 +142,12 @@ TitleWindow::~TitleWindow() void TitleWindow::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); int margin = client->get_theme()->widget_border; char string[BCTEXTLEN]; -#define COLOR_W 50 -#define COLOR_H 30 +#define COLOR_W xS(50) +#define COLOR_H yS(30) client->build_previews(this); sizes.append(new BC_ListBoxItem("8")); @@ -244,20 +245,20 @@ void TitleWindow::create_objects() int x2 = x1 + size->get_w(), y2 = y1 + size->get_h() + margin; add_subwindow(size_tumbler = new TitleSizeTumble(client, this, x2, y1+margin)); - add_tool(pitch_title = new BC_Title(x-5, y2+margin, _("Pitch:"))); + add_tool(pitch_title = new BC_Title(x-xS(5), y2+margin, _("Pitch:"))); pitch = new TitlePitch(client, this, x1, y2+margin, &client->config.line_pitch); pitch->create_objects(); - int x3 = x2 + size_tumbler->get_w() + 50; + int x3 = x2 + size_tumbler->get_w() + xS(50); int y3 = pitch->get_y() + pitch->get_h(); add_tool(style_title = new BC_Title(x=x3, y, _("Style:"))); - add_tool(italic = new TitleItalic(client, this, x, y + 20)); + add_tool(italic = new TitleItalic(client, this, x, y + yS(20))); int w1 = italic->get_w(); - add_tool(bold = new TitleBold(client, this, x, y + 50)); + add_tool(bold = new TitleBold(client, this, x, y + yS(50))); if( bold->get_w() > w1 ) w1 = bold->get_w(); - add_tool(drag = new TitleDrag(client, this, x, y + 80)); + add_tool(drag = new TitleDrag(client, this, x, y + yS(80))); drag->create_objects(); if( drag->get_w() > w1 ) w1 = drag->get_w(); if( client->config.drag ) { @@ -265,25 +266,25 @@ void TitleWindow::create_objects() eprintf("drag enabled, but compositor already grabbed\n"); } - add_tool(alias = new TitleAlias(client, this, x, y+110)); + add_tool(alias = new TitleAlias(client, this, x, y+yS(110))); if( alias->get_w() > w1 ) w1 = drag->get_w(); x += w1 + margin; - add_tool(justify_title = new BC_Title(x+50, y, _("Justify:"))); - add_tool(left = new TitleLeft(client, this, x, y + 20)); + add_tool(justify_title = new BC_Title(x+xS(50), y, _("Justify:"))); + add_tool(left = new TitleLeft(client, this, x, y + yS(20))); w1 = left->get_w(); - add_tool(center = new TitleCenter(client, this, x, y + 50)); + add_tool(center = new TitleCenter(client, this, x, y + yS(50))); if( center->get_w() > w1 ) w1 = center->get_w(); - add_tool(right = new TitleRight(client, this, x, y + 80)); + add_tool(right = new TitleRight(client, this, x, y + yS(80))); if( right->get_w() > w1 ) w1 = right->get_w(); x += w1 + margin; - add_tool(top = new TitleTop(client, this, x, y + 20)); - add_tool(mid = new TitleMid(client, this, x, y + 50)); - add_tool(bottom= new TitleBottom(client, this, x, y + 80)); + add_tool(top = new TitleTop(client, this, x, y + yS(20))); + add_tool(mid = new TitleMid(client, this, x, y + yS(50))); + add_tool(bottom= new TitleBottom(client, this, x, y + yS(80))); x = margin; - y = y3+10; + y = y3+yS(10); w1 = BC_Title::calculate_w(this, _("X:")); if( (x1 = BC_Title::calculate_w(this, _("Y:"))) > w1 ) w1 = x1; @@ -312,55 +313,55 @@ void TitleWindow::create_objects() title_h->create_objects(); x1 += title_h->get_w(); - x = x1+2*margin; + x = x1+xS(2)*margin; add_tool(motion_title = new BC_Title(x1=x, y, _("Motion:"))); x1 += motion_title->get_w()+margin; motion = new TitleMotion(client, this, x1, y); motion->create_objects(); add_tool(loop = new TitleLoop(client, this, x, y1)); - x = margin; y = y1 + loop->get_h()+20; + x = margin; y = y1 + loop->get_h()+yS(20); add_tool(dropshadow_title = new BC_Title(x, y, _("Drop shadow:"))); w1 = dropshadow_title->get_w(); - dropshadow = new TitleDropShadow(client, this, x, y + 20); + dropshadow = new TitleDropShadow(client, this, x, y + yS(20)); dropshadow->create_objects(); if( dropshadow->get_w() > w1 ) w1 = dropshadow->get_w(); x += w1 + margin; add_tool(fadein_title = new BC_Title(x, y, _("Fade in (sec):"))); w1 = fadein_title->get_w(); - add_tool(fade_in = new TitleFade(client, this, &client->config.fade_in, x, y + 20)); + add_tool(fade_in = new TitleFade(client, this, &client->config.fade_in, x, y + yS(20))); if( fade_in->get_w() > w1 ) w1 = fade_in->get_w(); x += w1 + margin; add_tool(fadeout_title = new BC_Title(x, y, _("Fade out (sec):"))); w1 = fadeout_title->get_w(); - add_tool(fade_out = new TitleFade(client, this, &client->config.fade_out, x, y + 20)); + add_tool(fade_out = new TitleFade(client, this, &client->config.fade_out, x, y + yS(20))); if( fade_out->get_w() > w1 ) w1 = fade_out->get_w(); x += w1 + margin; add_tool(speed_title = new BC_Title(x, y, _("Speed:"))); w1 = speed_title->get_w(); - y += speed_title->get_h() + 5; y1 = y; + y += speed_title->get_h() + yS(5); y1 = y; speed = new TitleSpeed(client, this, x, y); speed->create_objects(); if( speed->get_w() > w1 ) w1 = speed->get_w(); x += w1 + margin; - y2 = y + speed->get_h() + 10; + y2 = y + speed->get_h() + yS(10); - add_tool(color_button_title = new BC_Title(x3, y1+10, _("Color:"))); - x1 = x3 + color_button_title->get_w() + 30; + add_tool(color_button_title = new BC_Title(x3, y1+yS(10), _("Color:"))); + x1 = x3 + color_button_title->get_w() + xS(30); add_tool(color_button = new TitleColorButton(client, this, x1, y1)); - y1 += color_button->get_h() + 10; - add_tool(outline_button_title = new BC_Title(x3, y1+10, _("Outline:"))); + y1 += color_button->get_h() + yS(10); + add_tool(outline_button_title = new BC_Title(x3, y1+yS(10), _("Outline:"))); add_tool(outline_button = new TitleOutlineColorButton(client, this, x1, y1)); - x = 10; y = y2; + x = yS(10); y = y2; add_tool(outline_title = new BC_Title(x, y, _("Outline:"))); y1 = y + outline_title->get_h() + margin; outline = new TitleOutline(client, this, x, y1); outline->create_objects(); - x += outline->get_w() + 2*margin; + x += outline->get_w() + xS(2)*margin; #ifdef USE_STROKER add_tool(stroker_title = new BC_Title(x, y, _("Stroker:"))); stroker = new TitleStroker(client, this, x, y1); @@ -381,7 +382,7 @@ void TitleWindow::create_objects() timecode_format->create_objects(); y += timecode_format->get_h() + margin; - x = 10; + x = xS(10); add_tool(background = new TitleBackground(client, this, x, y)); x += background->get_w() + margin; add_tool(background_path = new TitleBackgroundPath(client, this, x, y)); @@ -389,19 +390,19 @@ void TitleWindow::create_objects() add_tool(background_browse = new BrowseButton( client->server->mwindow->theme, this, background_path, x, y, "", _("background media"), _("Select background media path"))); - x += background_browse->get_w() + 3*margin; + x += background_browse->get_w() + xS(3)*margin; add_tool(loop_playback = new TitleLoopPlayback(client, this, x, y)); - y += loop_playback->get_h() + 10; + y += loop_playback->get_h() + yS(10); - x = 10; + x = xS(10); add_tool(text_title = new BC_Title(x, y, _("Text:"))); - x += text_title->get_w() + 20; - int wid = BC_Title::calculate_w(this,"0")*10; + x += text_title->get_w() + xS(20); + int wid = BC_Title::calculate_w(this,"0")*xS(10); add_tool(text_chars = new TitleTextChars(x,y,wid)); y += text_title->get_h() + margin; x = margin; - text = new TitleText(client, this, x, y, get_w()-margin - x, get_h() - y - 10); + text = new TitleText(client, this, x, y, get_w()-margin - x, get_h() - y - yS(10)); text->create_objects(); add_tool(cur_popup = new TitleCurPopup(client, this)); @@ -457,8 +458,8 @@ int TitleWindow::resize_event(int w, int h) fade_out->reposition_window(fade_out->get_x(), fade_out->get_y()); text_title->reposition_window(text_title->get_x(), text_title->get_y()); timecode->reposition_window(timecode->get_x(), timecode->get_y()); - text->reposition_window(text->get_x(), text->get_y(), w - text->get_x() - 10, - BC_TextBox::pixels_to_rows(this, MEDIUMFONT, h - text->get_y() - 10)); + text->reposition_window(text->get_x(), text->get_y(), w - text->get_x() - xS(10), + BC_TextBox::pixels_to_rows(this, MEDIUMFONT, h - text->get_y() - yS(10))); justify_title->reposition_window(justify_title->get_x(), justify_title->get_y()); left->reposition_window(left->get_x(), left->get_y()); center->reposition_window(center->get_x(), center->get_y()); @@ -729,7 +730,7 @@ int TitleItalic::handle_event() TitleSize::TitleSize(TitleMain *client, TitleWindow *window, int x, int y, char *text) - : BC_PopupTextBox(window, &window->sizes, text, x, y, 64, 300) + : BC_PopupTextBox(window, &window->sizes, text, x, y, xS(64), yS(300)) { this->client = client; this->window = window; @@ -753,7 +754,7 @@ void TitleSize::update(int size) TitlePitch:: TitlePitch(TitleMain *client, TitleWindow *window, int x, int y, int *value) - : BC_TumbleTextBox(window, *value, 0, INT_MAX, x, y, 64) + : BC_TumbleTextBox(window, *value, 0, INT_MAX, x, y, xS(64)) { this->client = client; this->window = window; @@ -824,7 +825,7 @@ void TitleOutlineColorButton::handle_done_event(int result) TitleMotion::TitleMotion(TitleMain *client, TitleWindow *window, int x, int y) : BC_PopupTextBox(window, &window->paths, client->motion_to_text(client->config.motion_strategy), - x, y, 120, 100) + x, y, xS(120), yS(100)) { this->client = client; this->window = window; @@ -863,7 +864,7 @@ int TitleTimecode::handle_event() TitleTimecodeFormat::TitleTimecodeFormat(TitleMain *client, TitleWindow *window, int x, int y, int tw, const char *text) - : BC_PopupMenu(x, y, BC_PopupMenu::calculate_w(tw)+10, text, 1) + : BC_PopupMenu(x, y, BC_PopupMenu::calculate_w(tw)+xS(10), text, 1) { this->client = client; this->window = window; @@ -900,7 +901,7 @@ int TitleTimecodeFormat::update(int timecode_format) TitleFade::TitleFade(TitleMain *client, TitleWindow *window, double *value, int x, int y) - : BC_TextBox(x, y, 80, 1, (float)*value) + : BC_TextBox(x, y, xS(80), 1, (float)*value) { this->client = client; this->window = window; @@ -949,7 +950,7 @@ void TitleWindow::check_style(const char *font_name, int update) TitleFont::TitleFont(TitleMain *client, TitleWindow *window, int x, int y) : BC_PopupTextBox(window, &window->fonts, client->config.font, - x, y, 340, 300, LISTBOX_ICON_LIST) + x, y, xS(340), yS(300), LISTBOX_ICON_LIST) { this->client = client; this->window = window; @@ -1012,7 +1013,7 @@ int TitleTextChars::update(int n) TitleDropShadow::TitleDropShadow(TitleMain *client, TitleWindow *window, int x, int y) : BC_TumbleTextBox(window, client->config.dropshadow, - -1000, 1000, x, y, 70) + -1000, 1000, x, y, xS(70)) { this->client = client; this->window = window; @@ -1027,7 +1028,7 @@ int TitleDropShadow::handle_event() TitleOutline::TitleOutline(TitleMain *client, TitleWindow *window, int x, int y) : BC_TumbleTextBox(window, client->config.outline_size, - 0.f, 1000.f, x, y, 70) + 0.f, 1000.f, x, y, xS(70)) { this->client = client; this->window = window; @@ -1043,7 +1044,7 @@ int TitleOutline::handle_event() TitleStroker::TitleStroker(TitleMain *client, TitleWindow *window, int x, int y) : BC_TumbleTextBox(window, client->config.stroke_width, - 0.f, 1000.f, x, y, 70) + 0.f, 1000.f, x, y, xS(70)) { this->client = client; this->window = window; @@ -1063,7 +1064,7 @@ int TitleStroker::handle_event() TitleX::TitleX(TitleMain *client, TitleWindow *window, int x, int y) : BC_TumbleTextBox(window, client->config.title_x, - -32767.f, 32767.f, x, y, 50) + -32767.f, 32767.f, x, y, xS(50)) { this->client = client; this->window = window; @@ -1078,7 +1079,7 @@ int TitleX::handle_event() TitleY::TitleY(TitleMain *client, TitleWindow *window, int x, int y) : BC_TumbleTextBox(window, client->config.title_y, - -32767.f, 32767.f, x, y, 50) + -32767.f, 32767.f, x, y, xS(50)) { this->client = client; this->window = window; @@ -1093,7 +1094,7 @@ int TitleY::handle_event() TitleW::TitleW(TitleMain *client, TitleWindow *window, int x, int y) : BC_TumbleTextBox(window, client->config.title_w, - 0, 32767, x, y, 50) + 0, 32767, x, y, xS(50)) { this->client = client; this->window = window; @@ -1107,7 +1108,7 @@ int TitleW::handle_event() TitleH::TitleH(TitleMain *client, TitleWindow *window, int x, int y) : BC_TumbleTextBox(window, client->config.title_h, - 0, 32767, x, y, 50) + 0, 32767, x, y, xS(50)) { this->client = client; this->window = window; @@ -1121,7 +1122,7 @@ int TitleH::handle_event() TitleSpeed::TitleSpeed(TitleMain *client, TitleWindow *window, int x, int y) : BC_TumbleTextBox(window, client->config.pixels_per_second, - 0.f, 1000.f, x, y, 100) + 0.f, 1000.f, x, y, xS(100)) { this->client = client; this->window = window; @@ -1279,7 +1280,7 @@ int TitleBackground::handle_event() } TitleBackgroundPath::TitleBackgroundPath(TitleMain *client, TitleWindow *window, int x, int y) - : BC_TextBox(x, y, 240, 1, client->config.background_path) + : BC_TextBox(x, y, xS(240), 1, client->config.background_path) { this->client = client; this->window = window; @@ -1445,7 +1446,7 @@ int TitleCurSubMenuItem::handle_event() case POPUP_FONT: { int px, py; window->get_pop_cursor(px ,py); - window->fonts_popup->activate(px, py, 300,200); + window->fonts_popup->activate(px, py, xS(300),yS(200)); return 1; } case POPUP_COLOR: { window->color_popup->activate(); @@ -1556,7 +1557,7 @@ BC_Window *TitlePngPopup::new_gui() int x, y; mwindow->gui->get_abs_cursor(x, y); BC_Window *gui = new BrowseButtonWindow(mwindow->theme, - x-25, y-100, window, "", _("Png file"), _("Png path"), 0); + x-xS(25), y-yS(100), window, "", _("Png file"), _("Png path"), 0); gui->create_objects(); return gui; } diff --git a/cinelerra-5.1/plugins/tracer/tracerwindow.C b/cinelerra-5.1/plugins/tracer/tracerwindow.C index e9b730fc..cff76598 100644 --- a/cinelerra-5.1/plugins/tracer/tracerwindow.C +++ b/cinelerra-5.1/plugins/tracer/tracerwindow.C @@ -36,11 +36,11 @@ #include "theme.h" #include "track.h" -#define COLOR_W 50 -#define COLOR_H 30 +#define COLOR_W xS(50) +#define COLOR_H yS(30) TracerNum::TracerNum(TracerWindow *gui, int x, int y, float output) - : BC_TumbleTextBox(gui, output, -32767.0f, 32767.0f, x, y, 120) + : BC_TumbleTextBox(gui, output, -32767.0f, 32767.0f, x, y, xS(120)) { this->gui = gui; set_increment(1); @@ -85,7 +85,7 @@ int TracerPointY::handle_event() } TracerWindow::TracerWindow(Tracer *plugin) - : PluginClientWindow(plugin, 400, 420, 400, 420, 0) + : PluginClientWindow(plugin, xS(400), yS(420), xS(400), yS(420), 0) { this->plugin = plugin; this->title_x = 0; this->point_x = 0; @@ -108,7 +108,7 @@ TracerWindow::~TracerWindow() void TracerWindow::create_objects() { - int x = 10, y = 10; + int x = xS(10), y = yS(10); int margin = plugin->get_theme()->widget_border; int hot_point = plugin->config.selected; add_subwindow(title_x = new BC_Title(x, y, _("X:"))); @@ -129,35 +129,35 @@ void TracerWindow::create_objects() add_subwindow(del_point = new TracerDelPoint(this, plugin, x1, y)); x1 += del_point->get_w() + margin; add_subwindow(point_dn = new TracerPointDn(this, x1, y)); - y += point_y->get_h() + margin + 10; + y += point_y->get_h() + margin + yS(10); add_subwindow(drag = new TracerDrag(this, x, y)); if( plugin->config.drag ) { if( !grab(plugin->server->mwindow->cwindow->gui) ) eprintf("drag enabled, but compositor already grabbed\n"); } - x1 = x + drag->get_w() + margin + 20; + x1 = x + drag->get_w() + margin + xS(20); add_subwindow(draw = new TracerDraw(this, x1, y)); - x1 += draw->get_w() + margin + 20; + x1 += draw->get_w() + margin + xS(20); add_subwindow(fill = new TracerFill(this, x1, y)); - x1 += drag->get_w() + margin + 20; - int y1 = y + 3; + x1 += drag->get_w() + margin + xS(20); + int y1 = y + yS(3); add_subwindow(reset = new TracerReset(this, plugin, x1, y1)); y1 += reset->get_h() + margin; add_subwindow(invert = new TracerInvert(this, plugin, x1, y1)); - y += drag->get_h() + margin + 15; + y += drag->get_h() + margin + yS(15); - x1 = x + 80; + x1 = x + xS(80); add_subwindow(title_r = new BC_Title(x, y, _("Feather:"))); - add_subwindow(feather = new TracerFeather(this, x1, y, 150)); + add_subwindow(feather = new TracerFeather(this, x1, y, xS(150))); y += feather->get_h() + margin; add_subwindow(title_s = new BC_Title(x, y, _("Radius:"))); - add_subwindow(radius = new TracerRadius(this, x1, y, 150)); - y += radius->get_h() + margin + 5; + add_subwindow(radius = new TracerRadius(this, x1, y, xS(150))); + y += radius->get_h() + margin + yS(5); add_subwindow(point_list = new TracerPointList(this, plugin, x, y)); point_list->update(plugin->config.selected); - y += point_list->get_h() + 10; + y += point_list->get_h() + yS(10); add_subwindow(new BC_Title(x, y, _( "Btn1: select/drag point\n" @@ -355,12 +355,12 @@ void TracerWindow::done_event(int result) } TracerPointList::TracerPointList(TracerWindow *gui, Tracer *plugin, int x, int y) - : BC_ListBox(x, y, 360, 130, LISTBOX_TEXT) + : BC_ListBox(x, y, xS(360), yS(130), LISTBOX_TEXT) { this->gui = gui; this->plugin = plugin; - titles[PT_X] = _("X"); widths[PT_X] = 90; - titles[PT_Y] = _("Y"); widths[PT_Y] = 90; + titles[PT_X] = _("X"); widths[PT_X] = xS(90); + titles[PT_Y] = _("Y"); widths[PT_Y] = yS(90); } TracerPointList::~TracerPointList() { @@ -595,7 +595,7 @@ int TracerRadius::handle_event() } TracerNewPoint::TracerNewPoint(TracerWindow *gui, Tracer *plugin, int x, int y) - : BC_GenericButton(x, y, 80, _("New")) + : BC_GenericButton(x, y, xS(80), _("New")) { this->gui = gui; this->plugin = plugin; @@ -612,7 +612,7 @@ int TracerNewPoint::handle_event() } TracerDelPoint::TracerDelPoint(TracerWindow *gui, Tracer *plugin, int x, int y) - : BC_GenericButton(x, y, 80, C_("Del")) + : BC_GenericButton(x, y, xS(80), C_("Del")) { this->gui = gui; this->plugin = plugin; diff --git a/cinelerra-5.1/plugins/translate/translatewin.C b/cinelerra-5.1/plugins/translate/translatewin.C index 7f01b30c..6bd1142f 100644 --- a/cinelerra-5.1/plugins/translate/translatewin.C +++ b/cinelerra-5.1/plugins/translate/translatewin.C @@ -39,10 +39,10 @@ TranslateWin::TranslateWin(TranslateMain *client) : PluginClientWindow(client, - 300, - 250, - 300, - 250, + xS(300), + yS(250), + xS(300), + yS(250), 0) { this->client = client; @@ -54,59 +54,61 @@ TranslateWin::~TranslateWin() void TranslateWin::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10), xs150 = xS(150); + int ys10 = yS(10), ys20 = yS(20), ys30 = yS(30), ys40 = yS(40); + int x = xs10, y = ys10; add_tool(new BC_Title(x, y, _("In X:"))); - y += 20; + y += ys20; in_x = new TranslateCoord(this, client, x, y, &client->config.in_x); in_x->create_objects(); - y += 30; + y += ys30; add_tool(new BC_Title(x, y, _("In Y:"))); - y += 20; + y += ys20; in_y = new TranslateCoord(this, client, x, y, &client->config.in_y); in_y->create_objects(); - y += 30; + y += ys30; add_tool(new BC_Title(x, y, _("In W:"))); - y += 20; + y += ys20; in_w = new TranslateCoord(this, client, x, y, &client->config.in_w); in_w->create_objects(); - y += 30; + y += ys30; add_tool(new BC_Title(x, y, _("In H:"))); - y += 20; + y += ys20; in_h = new TranslateCoord(this, client, x, y, &client->config.in_h); in_h->create_objects(); - y += 40; + y += ys40; add_tool(reset = new TranslateReset(client, this, x, y)); - x += 150; - y = 10; + x += xs150; + y = ys10; add_tool(new BC_Title(x, y, _("Out X:"))); - y += 20; + y += ys20; out_x = new TranslateCoord(this, client, x, y, &client->config.out_x); out_x->create_objects(); - y += 30; + y += ys30; add_tool(new BC_Title(x, y, _("Out Y:"))); - y += 20; + y += ys20; out_y = new TranslateCoord(this, client, x, y, &client->config.out_y); out_y->create_objects(); - y += 30; + y += ys30; add_tool(new BC_Title(x, y, _("Out W:"))); - y += 20; + y += ys20; out_w = new TranslateCoord(this, client, x, y, &client->config.out_w); out_w->create_objects(); - y += 30; + y += ys30; add_tool(new BC_Title(x, y, _("Out H:"))); - y += 20; + y += ys20; out_h = new TranslateCoord(this, client, x, y, &client->config.out_h); out_h->create_objects(); - y += 30; + y += ys30; show_window(); flush(); @@ -138,7 +140,7 @@ TranslateCoord::TranslateCoord(TranslateWin *win, (int)10000, x, y, - 100) + xS(100)) { //printf("TranslateWidth::TranslateWidth %f\n", client->config.w); this->client = client; diff --git a/cinelerra-5.1/plugins/unsharp/unsharpwindow.C b/cinelerra-5.1/plugins/unsharp/unsharpwindow.C index 18a0403d..495eb82a 100644 --- a/cinelerra-5.1/plugins/unsharp/unsharpwindow.C +++ b/cinelerra-5.1/plugins/unsharp/unsharpwindow.C @@ -27,7 +27,7 @@ UnsharpWindow::UnsharpWindow(UnsharpMain *plugin) - : PluginClientWindow(plugin, 285, 170, 285, 170, 0) + : PluginClientWindow(plugin, xS(285), yS(170), xS(285), yS(170), 0) { this->plugin = plugin; } @@ -38,30 +38,32 @@ UnsharpWindow::~UnsharpWindow() void UnsharpWindow::create_objects() { - int x = 10, y = 10, x1 = 90; - int x2 = 0; int clrBtn_w = 50; - int defaultBtn_w = 100; + int xs10 = xS(10), xs50 = xS(50), xs90 = xS(90), xs100 = xS(100); + int ys10 = yS(10), ys40 = yS(40), ys50 = yS(50); + int x = xs10, y = ys10, x1 = xs90; + int x2 = 0; int clrBtn_w = xs50; + int defaultBtn_w = xs100; BC_Title *title; - add_subwindow(title = new BC_Title(x, y + 10, _("Radius:"))); + add_subwindow(title = new BC_Title(x, y + ys10, _("Radius:"))); add_subwindow(radius = new UnsharpRadius(plugin, x + x1, y)); - x2 = 285 - 10 - clrBtn_w; - add_subwindow(radiusClr = new UnsharpSliderClr(plugin, this, x2, y + 10, clrBtn_w, RESET_RADIUS)); + x2 = xS(285) - xs10 - clrBtn_w; + add_subwindow(radiusClr = new UnsharpSliderClr(plugin, this, x2, y + ys10, clrBtn_w, RESET_RADIUS)); - y += 40; - add_subwindow(title = new BC_Title(x, y + 10, _("Amount:"))); + y += ys40; + add_subwindow(title = new BC_Title(x, y + ys10, _("Amount:"))); add_subwindow(amount = new UnsharpAmount(plugin, x + x1, y)); - add_subwindow(amountClr = new UnsharpSliderClr(plugin, this, x2, y + 10, clrBtn_w, RESET_AMOUNT)); + add_subwindow(amountClr = new UnsharpSliderClr(plugin, this, x2, y + ys10, clrBtn_w, RESET_AMOUNT)); - y += 40; - add_subwindow(title = new BC_Title(x, y + 10, _("Threshold:"))); + y += ys40; + add_subwindow(title = new BC_Title(x, y + ys10, _("Threshold:"))); add_subwindow(threshold = new UnsharpThreshold(plugin, x + x1, y)); - add_subwindow(thresholdClr = new UnsharpSliderClr(plugin, this, x2, y + 10, clrBtn_w, RESET_THRESHOLD)); + add_subwindow(thresholdClr = new UnsharpSliderClr(plugin, this, x2, y + ys10, clrBtn_w, RESET_THRESHOLD)); - y += 50; + y += ys50; add_subwindow(reset = new UnsharpReset(plugin, this, x, y)); add_subwindow(default_settings = new UnsharpDefaultSettings(plugin, this, - (285 - 10 - defaultBtn_w), y, defaultBtn_w)); + (xS(285) - xs10 - defaultBtn_w), y, defaultBtn_w)); show_window(); flush(); diff --git a/cinelerra-5.1/plugins/vocoder/vocoder.C b/cinelerra-5.1/plugins/vocoder/vocoder.C index 5987558e..df916021 100644 --- a/cinelerra-5.1/plugins/vocoder/vocoder.C +++ b/cinelerra-5.1/plugins/vocoder/vocoder.C @@ -270,10 +270,10 @@ int VocoderBands::handle_event() VocoderWindow::VocoderWindow(Vocoder *plugin) : PluginClientWindow(plugin, - 320, - 150, - 320, - 150, + xS(320), + yS(150), + xS(320), + yS(150), 0) { this->plugin = plugin; diff --git a/cinelerra-5.1/plugins/wave/wave.C b/cinelerra-5.1/plugins/wave/wave.C index c5f0c3f3..b3825fad 100644 --- a/cinelerra-5.1/plugins/wave/wave.C +++ b/cinelerra-5.1/plugins/wave/wave.C @@ -156,8 +156,8 @@ WaveAmplitude::WaveAmplitude(WaveEffect *plugin, int x, int y) : BC_FSlider(x, y, 0, - 200, - 200, + xS(200), + yS(200), (float)0, (float)100, plugin->config.amplitude) @@ -177,8 +177,8 @@ WavePhase::WavePhase(WaveEffect *plugin, int x, int y) : BC_FSlider(x, y, 0, - 200, - 200, + xS(200), + yS(200), (float)0, (float)360, plugin->config.phase) @@ -196,8 +196,8 @@ WaveLength::WaveLength(WaveEffect *plugin, int x, int y) : BC_FSlider(x, y, 0, - 200, - 200, + xS(200), + yS(200), (float)0, (float)50, plugin->config.wavelength) @@ -270,7 +270,7 @@ int WaveSliderClr::handle_event() WaveWindow::WaveWindow(WaveEffect *plugin) - : PluginClientWindow(plugin, 385, 140, 385, 140, 0) + : PluginClientWindow(plugin, xS(385), yS(140), xS(385), yS(140), 0) { this->plugin = plugin; } @@ -281,36 +281,38 @@ WaveWindow::~WaveWindow() void WaveWindow::create_objects() { - int x = 10, y = 10, x1 = 115; - int x2 = 0; int clrBtn_w = 50; - int defaultBtn_w = 100; + int xs10 = xS(10), xs50 = xS(50), xs100 = xS(100), xs115 = xS(115); + int ys10 = yS(10), ys30 = yS(30), ys40 = yS(40); + int x = xs10, y = ys10, x1 = xs115; + int x2 = 0; int clrBtn_w = xs50; + int defaultBtn_w = xs100; // add_subwindow(new BC_Title(x, y, _("Mode:"))); // add_subwindow(smear = new WaveSmear(plugin, this, x1, y)); -// y += 20; +// y += ys20; // add_subwindow(blacken = new WaveBlacken(plugin, this, x1, y)); -// y += 30; +// y += ys30; // add_subwindow(reflective = new WaveReflective(plugin, x1, y)); -// y += 30; +// y += ys30; add_subwindow(new BC_Title(x, y, _("Amplitude:"))); add_subwindow(amplitude = new WaveAmplitude(plugin, x1, y)); - x2 = x1 + amplitude->get_w() + 10; + x2 = x1 + amplitude->get_w() + xs10; add_subwindow(amplitudeClr = new WaveSliderClr(plugin, this, x2, y, clrBtn_w, RESET_AMPLITUDE)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Phase:"))); add_subwindow(phase = new WavePhase(plugin, x1, y)); add_subwindow(phaseClr = new WaveSliderClr(plugin, this, x2, y, clrBtn_w, RESET_PHASE)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Wavelength:"))); add_subwindow(wavelength = new WaveLength(plugin, x1, y)); add_subwindow(wavelengthClr = new WaveSliderClr(plugin, this, x2, y, clrBtn_w, RESET_WAVELENGTH)); - y += 40; + y += ys40; add_subwindow(reset = new WaveReset(plugin, this, x, y)); add_subwindow(default_settings = new WaveDefaultSettings(plugin, this, - (385 - 10 - defaultBtn_w), y, defaultBtn_w)); + (xS(385) - xs10 - defaultBtn_w), y, defaultBtn_w)); show_window(); flush(); diff --git a/cinelerra-5.1/plugins/whirl/whirl.C b/cinelerra-5.1/plugins/whirl/whirl.C index ed84243d..ac598991 100644 --- a/cinelerra-5.1/plugins/whirl/whirl.C +++ b/cinelerra-5.1/plugins/whirl/whirl.C @@ -289,7 +289,7 @@ void WhirlConfig::interpolate(WhirlConfig &prev, WhirlWindow::WhirlWindow(WhirlEffect *plugin) - : PluginClientWindow(plugin, 280, 195, 280, 195, 0) + : PluginClientWindow(plugin, xS(280), yS(195), xS(280), yS(195), 0) { this->plugin = plugin; } @@ -298,33 +298,34 @@ WhirlWindow::WhirlWindow(WhirlEffect *plugin) void WhirlWindow::create_objects() { - int x = 10, y = 10; - int x1 = 0; int clrBtn_w = 50; - int defaultBtn_w = 100; + int xs10 = xS(10), xs50 = xS(50), xs100 = xS(100); + int ys10 = yS(10), ys20 = yS(20), ys30 = yS(30), ys35 = yS(35); + int x = xs10, y = ys10; + int x1 = 0; int clrBtn_w = xs50; + int defaultBtn_w = xs100; add_subwindow(new BC_Title(x, y, _("Radius"))); - y += 20; + y += ys20; add_subwindow(radius = new WhirlRadius(plugin, x, y)); - x1 = x + radius->get_w() + 10; + x1 = x + radius->get_w() + xs10; add_subwindow(radiusClr = new WhirlSliderClr(plugin, this, x1, y, clrBtn_w, RESET_RADIUS)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Pinch"))); - y += 20; + y += ys20; add_subwindow(pinch = new WhirlPinch(plugin, x, y)); add_subwindow(pinchClr = new WhirlSliderClr(plugin, this, x1, y, clrBtn_w, RESET_PINCH)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Angle"))); - y += 20; + y += ys20; add_subwindow(angle = new WhirlAngle(plugin, x, y)); add_subwindow(angleClr = new WhirlSliderClr(plugin, this, x1, y, clrBtn_w, RESET_ANGLE)); - y += 35; + y += ys35; add_subwindow(reset = new WhirlReset(plugin, this, x, y)); add_subwindow(default_settings = new WhirlDefaultSettings(plugin, this, - (280 - 10 - defaultBtn_w), y, defaultBtn_w)); - + (xS(280) - xs10 - defaultBtn_w), y, defaultBtn_w)); show_window(); flush(); } @@ -364,8 +365,8 @@ WhirlAngle::WhirlAngle(WhirlEffect *plugin, int x, int y) : BC_FSlider(x, y, 0, - 200, - 200, + xS(200), + yS(200), (float)0, (float)360, plugin->config.angle) @@ -386,8 +387,8 @@ WhirlPinch::WhirlPinch(WhirlEffect *plugin, int x, int y) : BC_FSlider(x, y, 0, - 200, - 200, + xS(200), + yS(200), (float)0, (float)MAXPINCH, plugin->config.pinch) @@ -408,8 +409,8 @@ WhirlRadius::WhirlRadius(WhirlEffect *plugin, int x, int y) : BC_FSlider(x, y, 0, - 200, - 200, + xS(200), + yS(200), (float)0, (float)MAXRADIUS, plugin->config.radius) @@ -880,8 +881,8 @@ void WhirlUnit::process_package(LoadPackage *package) double pinch = plugin->config.pinch / MAXPINCH; double cx, cy; int ix, iy; - double cen_x = (double)(w - 1) / 2.0; - double cen_y = (double)(h - 1) / 2.0; + double cen_x = (double)(w-1) / 2.0; + double cen_y = (double)(h-1) / 2.0; double radius = MAX(w, h); double radius3 = plugin->config.radius / MAXRADIUS; double radius2 = radius * radius * radius3; diff --git a/cinelerra-5.1/plugins/whirl/whirlwindow.C b/cinelerra-5.1/plugins/whirl/whirlwindow.C index 3efb108d..6643b370 100644 --- a/cinelerra-5.1/plugins/whirl/whirlwindow.C +++ b/cinelerra-5.1/plugins/whirl/whirlwindow.C @@ -31,7 +31,7 @@ WhirlWindow::WhirlWindow(WhirlMain *client) - : PluginClientWindow(client, 210, 170, 200, 170, 0) + : PluginClientWindow(client, xS(210), yS(170), xS(200), yS(170), 0) { this->client = client; } WhirlWindow::~WhirlWindow() @@ -46,26 +46,28 @@ WhirlWindow::~WhirlWindow() void WhirlWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10), xs80 = xS(80); + int ys10 = yS(10), ys20 = yS(20), ys30 = yS(30), ys35 = yS(35); + int x = xs10, y = ys10; add_tool(new BC_Title(x, y, _("Angle"))); - add_tool(automation[0] = new AutomatedFn(client, this, x + 80, y, 0)); - y += 20; + add_tool(automation[0] = new AutomatedFn(client, this, x + xs80, y, 0)); + y += ys20; add_tool(angle_slider = new AngleSlider(client, x, y)); - y += 35; + y += ys35; add_tool(new BC_Title(x, y, _("Pinch"))); - add_tool(automation[1] = new AutomatedFn(client, this, x + 80, y, 1)); - y += 20; + add_tool(automation[1] = new AutomatedFn(client, this, x + xs80, y, 1)); + y += ys20; add_tool(pinch_slider = new PinchSlider(client, x, y)); - y += 35; + y += ys35; add_tool(new BC_Title(x, y, _("Radius"))); - add_tool(automation[2] = new AutomatedFn(client, this, x + 80, y, 2)); - y += 20; + add_tool(automation[2] = new AutomatedFn(client, this, x + xs80, y, 2)); + y += ys20; add_tool(radius_slider = new RadiusSlider(client, x, y)); } AngleSlider::AngleSlider(WhirlMain *client, int x, int y) - : BC_ISlider(x, y, 190, 30, 200, client->angle, -MAXANGLE, MAXANGLE, DKGREY, BLACK, 1) + : BC_ISlider(x, y, xS(190), yS(30), xS(200), client->angle, -MAXANGLE, MAXANGLE, DKGREY, BLACK, 1) { this->client = client; } @@ -80,8 +82,7 @@ int AngleSlider::handle_event() } PinchSlider::PinchSlider(WhirlMain *client, int x, int y) - : BC_ISlider(x, y, 190, 30, 200, client->pinch, -MAXPINCH, MAXPINCH, DKGREY, BLACK, 1) -{ + : BC_ISlider(x, y, xS(190), yS(30), xS(200), client->pinch, -MAXPINCH, MAXPINCH, DKGREY, BLACK, 1) this->client = client; } PinchSlider::~PinchSlider() @@ -95,7 +96,7 @@ int PinchSlider::handle_event() } RadiusSlider::RadiusSlider(WhirlMain *client, int x, int y) - : BC_ISlider(x, y, 190, 30, 200, client->radius, 0, MAXRADIUS, DKGREY, BLACK, 1) + : BC_ISlider(x, y, xS(190), yS(30), xS(200), client->radius, 0, MAXRADIUS, DKGREY, BLACK, 1) { this->client = client; } diff --git a/cinelerra-5.1/plugins/wipe/wipe.C b/cinelerra-5.1/plugins/wipe/wipe.C index 6b26694a..a0420640 100644 --- a/cinelerra-5.1/plugins/wipe/wipe.C +++ b/cinelerra-5.1/plugins/wipe/wipe.C @@ -92,10 +92,10 @@ int WipeRight::handle_event() WipeWindow::WipeWindow(WipeMain *plugin) : PluginClientWindow(plugin, - 320, - 50, - 320, - 50, + xS(320), + yS(50), + xS(320), + yS(50), 0) { this->plugin = plugin; diff --git a/cinelerra-5.1/plugins/yuv/yuv.C b/cinelerra-5.1/plugins/yuv/yuv.C index 868137f8..6e6bd86f 100644 --- a/cinelerra-5.1/plugins/yuv/yuv.C +++ b/cinelerra-5.1/plugins/yuv/yuv.C @@ -190,8 +190,8 @@ YUVLevel::YUVLevel(YUVEffect *plugin, float *output, int x, int y) : BC_FSlider(x, y, 0, - 200, - 200, + xS(200), + yS(200), -MAXVALUE, MAXVALUE, *output) @@ -249,32 +249,34 @@ int YUVSliderClr::handle_event() YUVWindow::YUVWindow(YUVEffect *plugin) - : PluginClientWindow(plugin, 310, 135, 310, 135, 0) + : PluginClientWindow(plugin, xS(310), yS(135), xS(310), yS(135), 0) { this->plugin = plugin; } void YUVWindow::create_objects() { - int x = 10, y = 10, x1 = 40; - int x2 = 0; int clrBtn_w = 50; + int xs10 = xS(10), xs40 = xS(40), xs50 = xS(50); + int ys10 = yS(10), ys30 = yS(30), ys35 = yS(35); + int x = xs10, y = ys10, x1 = xs40; + int x2 = 0; int clrBtn_w = xs50; add_subwindow(new BC_Title(x, y, _("Y:"))); add_subwindow(this->y = new YUVLevel(plugin, &plugin->config.y, x1, y)); - x2 = x1 + this->y->get_w() + 10; + x2 = x1 + this->y->get_w() + xs10; add_subwindow(yClr = new YUVSliderClr(plugin, this, x2, y, clrBtn_w, RESET_Y_SLIDER)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("U:"))); add_subwindow(u = new YUVLevel(plugin, &plugin->config.u, x1, y)); add_subwindow(uClr = new YUVSliderClr(plugin, this, x2, y, clrBtn_w, RESET_U_SLIDER)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("V:"))); add_subwindow(v = new YUVLevel(plugin, &plugin->config.v, x1, y)); add_subwindow(vClr = new YUVSliderClr(plugin, this, x2, y, clrBtn_w, RESET_V_SLIDER)); - y += 35; + y += ys35; add_subwindow(reset = new YUVReset(plugin, this, x, y)); show_window(); diff --git a/cinelerra-5.1/plugins/yuv411/yuv411win.C b/cinelerra-5.1/plugins/yuv411/yuv411win.C index 6b729291..056f68bf 100644 --- a/cinelerra-5.1/plugins/yuv411/yuv411win.C +++ b/cinelerra-5.1/plugins/yuv411/yuv411win.C @@ -3,7 +3,7 @@ #include "language.h" yuv411Window::yuv411Window(yuv411Main *client) - : PluginClientWindow(client, 250, 255, 250, 255, 0) + : PluginClientWindow(client, xS(250), yS(255), xS(250), yS(255), 0) { this->client = client; } @@ -14,35 +14,37 @@ yuv411Window::~yuv411Window() void yuv411Window::create_objects() { - int x = 10, y = 10, x1=90; + int xs10 = xS(10), xs90 = xS(90); + int ys10 = yS(10), ys30 = yS(30), ys35 = yS(35); + int x = xs10, y = ys10, x1=xs90; add_tool(avg_vertical = new yuv411Toggle(client, &(client->config.avg_vertical), _("Vertical average"), x, y)); - y += 30; + y += ys30; add_tool(int_horizontal = new yuv411Toggle(client, &(client->config.int_horizontal), _("Horizontal interpolate"), x, y)); - y += 30; + y += ys30; add_tool(inpainting = new yuv411Toggle(client, &(client->config.inpainting), _("Inpainting method"), x, y)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Offset:"))); add_subwindow(offset=new yuv411Offset(client,x1,y)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Threshold:"))); add_subwindow(thresh=new yuv411Thresh(client,x1,y)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Bias:"))); add_subwindow(bias=new yuv411Bias(client,x1,y)); - y += 30; - add_subwindow(reset = new yuv411Reset(client, this, x, y+35)); + y += ys30; + add_subwindow(reset = new yuv411Reset(client, this, x, y+ys35)); show_window(); flush(); @@ -85,7 +87,7 @@ int yuv411Toggle::handle_event() } yuv411Offset::yuv411Offset(yuv411Main *client, int x, int y) - : BC_FSlider(x, y, 0, 100, 100, (float)0, (float)2, + : BC_FSlider(x, y, 0, xS(100), yS(100), (float)0, (float)2, (float)client->config.offset) { this->client = client; @@ -99,7 +101,7 @@ int yuv411Offset::handle_event() } yuv411Thresh::yuv411Thresh(yuv411Main *client, int x, int y) - : BC_FSlider(x, y, 0, 100, 100, (float)1, (float)100, + : BC_FSlider(x, y, 0, xS(100), yS(100), (float)1, (float)100, (float)client->config.thresh) { this->client = client; @@ -113,7 +115,7 @@ int yuv411Thresh::handle_event() } yuv411Bias::yuv411Bias(yuv411Main *client, int x, int y) - : BC_FSlider(x, y, 0, 100, 100, (float)0, (float)25, + : BC_FSlider(x, y, 0, xS(100), yS(100), (float)0, (float)25, (float)client->config.bias) { this->client = client; diff --git a/cinelerra-5.1/plugins/yuvshift/yuvshift.C b/cinelerra-5.1/plugins/yuvshift/yuvshift.C index 0f0b85b6..fe5a0c9a 100644 --- a/cinelerra-5.1/plugins/yuvshift/yuvshift.C +++ b/cinelerra-5.1/plugins/yuvshift/yuvshift.C @@ -97,7 +97,7 @@ void YUVShiftConfig::interpolate(YUVShiftConfig &prev, #define MAXVALUE 100 YUVShiftLevel::YUVShiftLevel(YUVShiftEffect *plugin, int *output, int x, int y) - : BC_ISlider(x, y, 0, 200, 200, -MAXVALUE, MAXVALUE, *output) + : BC_ISlider(x, y, 0, xS(200), yS(200), -MAXVALUE, MAXVALUE, *output) { this->plugin = plugin; this->output = output; @@ -152,47 +152,49 @@ int YUVShiftSliderClr::handle_event() YUVShiftWindow::YUVShiftWindow(YUVShiftEffect *plugin) - : PluginClientWindow(plugin, 320, 230, 320, 230, 0) + : PluginClientWindow(plugin, xS(320), yS(230), xS(320), yS(230), 0) { this->plugin = plugin; } void YUVShiftWindow::create_objects() { - int x = 10, y = 10, x1 = 50; - int x2 = 0; int clrBtn_w = 50; + int xs10 = xS(10), xs50 = xS(50); + int ys10 = yS(10), ys30 = yS(30), ys40 = yS(40); + int x = xs10, y = ys10, x1 = xs50; + int x2 = 0; int clrBtn_w = xs50; add_subwindow(new BC_Title(x, y, _("Y_dx:"))); add_subwindow(y_dx = new YUVShiftLevel(plugin, &plugin->config.y_dx, x1, y)); - x2 = x1 + y_dx->get_w() + 10; + x2 = x1 + y_dx->get_w() + xs10; add_subwindow(y_dxClr = new YUVShiftSliderClr(plugin, this, x2, y, clrBtn_w, RESET_Y_DX)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Y_dy:"))); add_subwindow(y_dy = new YUVShiftLevel(plugin, &plugin->config.y_dy, x1, y)); add_subwindow(y_dyClr = new YUVShiftSliderClr(plugin, this, x2, y, clrBtn_w, RESET_Y_DY)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("U_dx:"))); add_subwindow(u_dx = new YUVShiftLevel(plugin, &plugin->config.u_dx, x1, y)); add_subwindow(u_dxClr = new YUVShiftSliderClr(plugin, this, x2, y, clrBtn_w, RESET_U_DX)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("U_dy:"))); add_subwindow(u_dy = new YUVShiftLevel(plugin, &plugin->config.u_dy, x1, y)); add_subwindow(u_dyClr = new YUVShiftSliderClr(plugin, this, x2, y, clrBtn_w, RESET_U_DY)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("V_dx:"))); add_subwindow(v_dx = new YUVShiftLevel(plugin, &plugin->config.v_dx, x1, y)); add_subwindow(v_dxClr = new YUVShiftSliderClr(plugin, this, x2, y, clrBtn_w, RESET_V_DX)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("V_dy:"))); add_subwindow(v_dy = new YUVShiftLevel(plugin, &plugin->config.v_dy, x1, y)); add_subwindow(v_dyClr = new YUVShiftSliderClr(plugin, this, x2, y, clrBtn_w, RESET_V_DY)); - y += 40; + y += ys40; add_subwindow(reset = new YUVShiftReset(plugin, this, x, y)); show_window(); diff --git a/cinelerra-5.1/plugins/zoom/zoom.C b/cinelerra-5.1/plugins/zoom/zoom.C index a7e26353..f962b613 100644 --- a/cinelerra-5.1/plugins/zoom/zoom.C +++ b/cinelerra-5.1/plugins/zoom/zoom.C @@ -74,10 +74,10 @@ int ZoomLimit::handle_event() ZoomWindow::ZoomWindow(ZoomMain *plugin) : PluginClientWindow(plugin, - 250, - 125, - 250, - 125, + xS(250), + yS(125), + xS(250), + yS(125), 0) { this->plugin = plugin; @@ -104,7 +104,7 @@ void ZoomWindow::create_objects() &plugin->max_magnification_x, x, y, - get_w() - window_border * 2 - widget_border - BC_Tumbler::calculate_w()); + get_w() - window_border * xS(2) - widget_border - BC_Tumbler::calculate_w()); limit_x->create_objects(); y += limit_x->get_h() + widget_border; add_subwindow(title = new BC_Title(x, y, _("Y Magnification:"))); @@ -114,7 +114,7 @@ void ZoomWindow::create_objects() &plugin->max_magnification_y, x, y, - get_w() - window_border * 2 - widget_border - BC_Tumbler::calculate_w()); + get_w() - window_border * xS(2) - widget_border - BC_Tumbler::calculate_w()); limit_y->create_objects(); show_window(); @@ -134,8 +134,8 @@ ZoomMain::ZoomMain(PluginServer *server) { overlayer = 0; temp = 0; - max_magnification_x = 10; - max_magnification_y = 10; + max_magnification_x = xS(10); + max_magnification_y = yS(10); } ZoomMain::~ZoomMain() diff --git a/cinelerra-5.1/plugins/zoomblur/zoomblur.C b/cinelerra-5.1/plugins/zoomblur/zoomblur.C index 0d40b7ca..e93c100c 100644 --- a/cinelerra-5.1/plugins/zoomblur/zoomblur.C +++ b/cinelerra-5.1/plugins/zoomblur/zoomblur.C @@ -37,8 +37,8 @@ void ZoomBlurConfig::reset(int clear) { switch(clear) { case RESET_ALL : - x = 50; - y = 50; + x = xS(50); + y = yS(50); radius = 0; steps = 1; r = 1; @@ -46,9 +46,9 @@ void ZoomBlurConfig::reset(int clear) b = 1; a = 1; break; - case RESET_XSLIDER : x = 50; + case RESET_XSLIDER : x = xS(50); break; - case RESET_YSLIDER : y = 50; + case RESET_YSLIDER : y = yS(50); break; case RESET_RADIUS : radius = 0; break; @@ -56,8 +56,8 @@ void ZoomBlurConfig::reset(int clear) break; case RESET_DEFAULT_SETTINGS : default: - x = 50; - y = 50; + x = xS(50); + y = yS(50); radius = 10; steps = 10; r = 1; @@ -124,10 +124,10 @@ void ZoomBlurConfig::interpolate(ZoomBlurConfig &prev, ZoomBlurWindow::ZoomBlurWindow(ZoomBlurMain *plugin) : PluginClientWindow(plugin, - 280, - 370, - 280, - 370, + xS(280), + yS(370), + xS(280), + yS(370), 0) { this->plugin = plugin; @@ -139,46 +139,48 @@ ZoomBlurWindow::~ZoomBlurWindow() void ZoomBlurWindow::create_objects() { - int x = 10, y = 10; - int x1 = 0; int clrBtn_w = 50; - int defaultBtn_w = 100; + int xs10 = xS(10), xs50 = xS(50), xs100 = xS(100); + int ys10 = yS(10), ys20 = yS(20), ys30 = yS(30), ys40 = yS(40); + int x = xs10, y = ys10; + int x1 = 0; int clrBtn_w = xs50; + int defaultBtn_w = xs100; add_subwindow(new BC_Title(x, y, _("X:"))); - y += 20; + y += ys20; add_subwindow(this->x = new ZoomBlurSize(plugin, x, y, &plugin->config.x, 0, 100)); - x1 = x + this->x->get_w() + 10; + x1 = x + this->x->get_w() + xs10; add_subwindow(xClr = new ZoomBlurSliderClr(plugin, this, x1, y, clrBtn_w, RESET_XSLIDER)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Y:"))); - y += 20; + y += ys20; add_subwindow(this->y = new ZoomBlurSize(plugin, x, y, &plugin->config.y, 0, 100)); add_subwindow(yClr = new ZoomBlurSliderClr(plugin, this, x1, y, clrBtn_w, RESET_YSLIDER)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Radius:"))); - y += 20; + y += ys20; add_subwindow(radius = new ZoomBlurSize(plugin, x, y, &plugin->config.radius, -100, 100)); add_subwindow(radiusClr = new ZoomBlurSliderClr(plugin, this, x1, y, clrBtn_w, RESET_RADIUS)); - y += 30; + y += ys30; add_subwindow(new BC_Title(x, y, _("Steps:"))); - y += 20; + y += ys20; add_subwindow(steps = new ZoomBlurSize(plugin, x, y, &plugin->config.steps, 1, 100)); add_subwindow(stepsClr = new ZoomBlurSliderClr(plugin, this, x1, y, clrBtn_w, RESET_STEPS)); - y += 30; + y += ys30; add_subwindow(r = new ZoomBlurToggle(plugin, x, y, &plugin->config.r, _("Red"))); - y += 30; + y += ys30; add_subwindow(g = new ZoomBlurToggle(plugin, x, y, &plugin->config.g, _("Green"))); - y += 30; + y += ys30; add_subwindow(b = new ZoomBlurToggle(plugin, x, y, &plugin->config.b, _("Blue"))); - y += 30; + y += ys30; add_subwindow(a = new ZoomBlurToggle(plugin, x, y, &plugin->config.a, _("Alpha"))); - y += 40; + y += ys40; add_subwindow(reset = new ZoomBlurReset(plugin, this, x, y)); add_subwindow(default_settings = new ZoomBlurDefaultSettings(plugin, this, - (280 - 10 - defaultBtn_w), y, defaultBtn_w)); + (xS(280) - xS(10) - defaultBtn_w), y, defaultBtn_w)); show_window(); flush(); @@ -250,7 +252,7 @@ ZoomBlurSize::ZoomBlurSize(ZoomBlurMain *plugin, int *output, int min, int max) - : BC_ISlider(x, y, 0, 200, 200, min, max, *output) + : BC_ISlider(x, y, 0, xS(200), yS(200), min, max, *output) { this->plugin = plugin; this->output = output; -- 2.26.2