Psearch - Puppy web search utility

Browsers, email, chat, etc.
Message
Author
seaside
Posts: 934
Joined: Thu 12 Apr 2007, 00:19

#16 Post by seaside »

PaulR wrote:Thanks for that seaside - what if you run the executable in my last post without recompiling?

Paul
Paul,

That is a pic of your last posted executable :)
It was run on precise 5.4.3 at Xft.dpi: 96.

Cheers,
s

PaulR
Posts: 249
Joined: Wed 04 May 2005, 18:45
Location: UK

#17 Post by PaulR »

Sorry seaside I misunderstood.

I tried setting my dpi to 96 in xwindows and recompiling with this value in the code
- I ended up with similar overlapping fonts!

Anyway, here's version 1.1 which includes the option for users to define the two sites used in the site-specific search - just edit psearch.sites and change the two lines in the format:

site name,site search url
site name,site search url

As it stands the program has a fallback if this config file doesn't exist, if less than two lines are present, or if there are spurious characters either side of the separator ','.

The archive includes source, *.pot, upx'ed executable and the little config file.

(Compiled at 78 dpi again :) )

Paul
Attachments
psearch1-1.png
(12.88 KiB) Downloaded 513 times
psearch1-1.tar.gz
(83.71 KiB) Downloaded 401 times

seaside
Posts: 934
Joined: Thu 12 Apr 2007, 00:19

#18 Post by seaside »

PaulR.

I just downloaded the new version and ran the executable at 96 and at 78 on Precise 5.4.3 resulting in skewed fonts on both.

I think this might be a Gtk version level issue :idea:

Cheers,
s

User avatar
vovchik
Posts: 1507
Joined: Tue 24 Oct 2006, 00:02
Location: Ukraine

#19 Post by vovchik »

Dear PaulR,

Scaling can be a real PITA in HUG, as you, Barry and others have observed. Recently, I solved the problem of calculating required pixels for width and height using libpango: http://basic-converter.proboards.com/in ... 314&page=3. It is towards the bottom of the page. You would have to get the user's current DPI settings (there are routines somewhere), set those in a HUGOPTION and then dynamically set your other w and h dimensions using the results of my function. I have a demo there on the BaCon site. It can be surely done, but it ain't that easy and transparent.

And you can use the following code snippet to get some info about the user's settings:

Code: Select all

REM try to set font size to fit window... ex: xdpy=107 xftdpi=78
xdpi=VAL(EXEC$("xdpyinfo | grep -o 'resolution: .*' | tr -s ' ' | cut -f 2 -d ' ' | cut -f 1 -d 'x'"))
xftdpi=VAL(EXEC$("grep '^Xft.dpi:.*' /root/.Xresources | tr -s ' ' | cut -f 2 -d ' '"))
REM my weird formula...
fontsize=INT(12.0*(78.0/xftdpi)*(107.0/xdpi))
fontsize_mono=fontsize
fontsize$=STR$(fontsize)
fontsize_mono$=STR$(fontsize_mono)
font_sans$=CONCAT$("DejaVu Sans ",fontsize$)
font_mono$=CONCAT$("Monospace ",fontsize_mono$)

PRINT xdpi
PRINT xftdpi
PRINT fontsize
PRINT font_mono$
PRINT font_sans$
I also did a kind of brute force method here:

Code: Select all

' *****************
' DECLARATIONS
' *****************

GLOBAL hres, vres, dsize, dpi, mydpi TYPE FLOATING
GLOBAL version$ TYPE STRING

' *****************
' END DECLARATIONS
' *****************

' *****************
' INIT VARS
' *****************

version$ = "v. 0.1"

' *****************
' END INIT VARS
' *****************


' *****************
' FUNCTIONs
' *****************

FUNCTION CALCDPI(FLOATING hres, FLOATING vres, FLOATING dsize)
        dpi = hres/(hres / SQR(POW(hres,2) + POW(vres,2)) * dsize)
        RETURN dpi
END FUNCTION

FUNCTION USAGE()
        PRINT NL$,"BaCon DPI Calculator - ", version$,NL$
        PRINT "Usage: dpicalc hres vres size", NL$
        PRINT "Where:"
        PRINT "  hres = horizontal resolution in pixels"
        PRINT "  vres = vertical resolution in pixels"
        PRINT "  size = diag. size of screen in inches",NL$
        PRINT "Example: dpicalc 1280 1024 19", NL$
        END
        RETURN TRUE
END FUNCTION

FUNCTION GETARGS()
        SPLIT ARGUMENT$ BY " " TO array$ SIZE dimension
        IF dimension < 4 THEN
                USAGE
        ELSE
                IF VAL(array$[1]) > 0 AND VAL(array$[2]) > 0 AND VAL(array$[3]) > 0 THEN
                        hres   = VAL(array$[1])
                        vres   = VAL(array$[2])
                        dsize  = VAL(array$[3])
                ELSE
                        PRINT NL$, "DPI Calculator: Input arguments contain bad values."
                        USAGE
                END IF
        END IF
        RETURN TRUE
END FUNCTION

FUNCTION SHOWRESULTS()
        STR1$ = "Calculated DPI for screen resolution of "
        PRINT NL$, STR1$, hres,"x",vres,"pixels and ",dsize, " in."," diagonal = ", mydpi, NL$
        RETURN TRUE
END FUNCTION

' *****************
' END FUNCTIONS
' *****************


' *****************
' MAIN
' *****************

GETARGS
mydpi = CALCDPI(hres, vres, dsize)
SHOWRESULTS
END

' *****************
' END MAIN
' *****************
Lastly, you can use some combination of gdk and pango calls, which I have in the past, but can't right now find to give you an example. :(

With kind regards,
vovchik

linuxcbon
Posts: 1312
Joined: Thu 09 Aug 2007, 22:54

#20 Post by linuxcbon »

L18L wrote:I have inserted HUGOPTIONS("BASEXFTDPI 66") and compiled. See the result, your original and mine :roll:
Why 66 ?

PaulR
Posts: 249
Joined: Wed 04 May 2005, 18:45
Location: UK

#21 Post by PaulR »

Thanks vovchik, it seems hideously complicated to do this accurately (I've just read a four page post here http://basic-converter.proboards.com/in ... 314&page=2 that several PL forum members have posted in).

In a language that offered a simple getpixel() function (or the address of the window's buffer!) I'd take the ultra-crude/pragmatic route and blit a white 'W' or 'M' on a black background, get the white pixel with the maximum x value and use that as the character width. Unfortunately that's not an appropriate technique in this case. It might be better to build a few different versions of the program for use on systems with differing dpi settings instead! :lol:

Paul

User avatar
L18L
Posts: 3479
Joined: Sat 19 Jun 2010, 18:56
Location: www.eussenheim.de/

HUG

#22 Post by L18L »

linuxcbon wrote:
L18L wrote:I have inserted HUGOPTIONS("BASEXFTDPI 66") and compiled. See the result, your original and mine :roll:
Why 66 ?
Do not know why. I only know that it has given the good result.
Posted on 29 Mar 2013, 8:06 by BarryK wrote: re hug dpi
L18L,
I don't see any problem.
I solved that problem a long time ago:

http://bkhome.org/bacon/hug/layout.htm

Both /usr/share/doc/welcome1stboot.bac and /usr/local/simple_network_setup/proxy-setup.bac in Woof use that method.
So did I by using 66.
And don't know why because PaulR has used 78.

seaside
Posts: 934
Joined: Thu 12 Apr 2007, 00:19

#23 Post by seaside »

L18L,
I have inserted HUGOPTIONS("BASEXFTDPI 66") and compiled.....
Quite a puzzle.....
I used your solution and find it works for all my dpi settings from 58 through 108 using the following:

1366x768
precise 5.4.3
bacon and hug build 29

Regards,
s

User avatar
L18L
Posts: 3479
Joined: Sat 19 Jun 2010, 18:56
Location: www.eussenheim.de/

Re: HUG

#24 Post by L18L »

seaside
thanks for your assistance :)

The problem
why 66 if PaulR has 78
solved
L18L wrote:
linuxcbon wrote:
L18L wrote:I have inserted HUGOPTIONS("BASEXFTDPI 66") and compiled. See the result, your original and mine :roll:
Why 66 ?
Do not know why. I only know that it has given the good result.
Posted on 29 Mar 2013, 8:06 by BarryK wrote: re hug dpi
L18L,
I don't see any problem.
I solved that problem a long time ago:

http://bkhome.org/bacon/hug/layout.htm

Both /usr/share/doc/welcome1stboot.bac and /usr/local/simple_network_setup/proxy-setup.bac in Woof use that method.
So did I by using 66.
And don't know why because PaulR has used 78.
Shame on all of us :oops: except BarryK 8)
who wrote:The same thing as shown above could also happen if a different GTK theme with larger font is chosen (see menu Desktop -> GTK theme chooser). Different users are going to have their own theme preference, but it isn't so good if a theme has bigger font sizes which cause our example window to be messed up.

There is also a simple solution to this. Peter introduced a feature that allows a font to be specified in the program, that overrides the GTK default. This will apply to all widgets. Put this near the beginning of the program:

HUGOPTIONS("FONT DejaVu Sans 12")

...with whatever font you want. DejaVu Sans is available in all puppies.
quoted from
http://bkhome.org/bacon/hug/layout.htm

Applying that hint:

Code: Select all

HUGOPTIONS("BASEXFTDPI 78")
'set font size so
'windows/fonts will scale properly on other systems 
HUGOPTIONS("FONT DejaVu Sans 9")
Everything is fine now.
Our thanks go to ...
PuppyMaster BarryK :!:
Attachments
psearch_solved.png
(15.96 KiB) Downloaded 1011 times

PaulR
Posts: 249
Joined: Wed 04 May 2005, 18:45
Location: UK

#25 Post by PaulR »

Thank you L18L, I haven't had much chance to think about this over the last few days as I've been working on some other projects. I missed that on Barry's page too - doh!

I've recompiled and attached the program, source and pot file.

Cheers

Paul
Attachments
psearch1-1.tar.gz
(114.17 KiB) Downloaded 408 times

PaulR
Posts: 249
Joined: Wed 04 May 2005, 18:45
Location: UK

#26 Post by PaulR »

ooops forgot to include the .sites file :oops:
Attachments
psearch.tar.gz
(58.47 KiB) Downloaded 454 times

User avatar
L18L
Posts: 3479
Joined: Sat 19 Jun 2010, 18:56
Location: www.eussenheim.de/

Psearch - Puppy web search utility

#27 Post by L18L »

PaulR
packaged just to help you on the Puppy way:

for next version (how I would do it):
cp .pet to .tgz
expand .tgz to /mnt/home/bacon
copy xxx-1.2 xxx-1.3

cd xxx-1.3
edit version, ...
maybe: define location of file psearch.sites? -> $HOME

compile .......

dir2pet xxx-1.3

Who needs which package?
dev: psearch_DEV
english user: psearch
other user: psearch and psearch_NLS
translator: psearch and psearch_DEV

please move the 3 packages to 1st post of this thread
where everybody will expect them to be.

Have fun.

-------
edited later
I have copied only your file to version 1.2
but did not change version number in the source. :cry:
Attachments
psearch-1.2.pet
(40.47 KiB) Downloaded 411 times
psearch-1.2_NLS.pet
for non-english users
at the moment german only
(1.02 KiB) Downloaded 395 times
psearch-1.2_DEV.pet
for toranslators
(4.03 KiB) Downloaded 369 times

Post Reply