summaryrefslogtreecommitdiff
path: root/plugins/WebView
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2019-03-02 12:32:44 +0300
committerGeorge Hazan <ghazan@miranda.im>2019-03-02 12:32:55 +0300
commit931a7dc1ac0dbc7e6c1083583ced915e572f5b47 (patch)
tree9fe9a6448d44030e26aa7107ce16044ed413e0d0 /plugins/WebView
parentdd7d9954042254e66e3bbbec7195c6be8b1a0663 (diff)
all protocols (even virtual ones) moved to the Protocols folder
Diffstat (limited to 'plugins/WebView')
-rw-r--r--plugins/WebView/docs/changelog.txt6
-rw-r--r--plugins/WebView/docs/license.txt340
-rw-r--r--plugins/WebView/docs/readme.txt1000
-rw-r--r--plugins/WebView/docs/todo.txt3
-rw-r--r--plugins/WebView/res/Icon_14.icobin2550 -> 0 bytes
-rw-r--r--plugins/WebView/res/alert.icobin2550 -> 0 bytes
-rw-r--r--plugins/WebView/res/find.icobin2550 -> 0 bytes
-rw-r--r--plugins/WebView/res/folder.icobin2550 -> 0 bytes
-rw-r--r--plugins/WebView/res/markallread.icobin2550 -> 0 bytes
-rw-r--r--plugins/WebView/res/options.icobin2550 -> 0 bytes
-rw-r--r--plugins/WebView/res/ping.icobin894 -> 0 bytes
-rw-r--r--plugins/WebView/res/popup.icobin2550 -> 0 bytes
-rw-r--r--plugins/WebView/res/show_hide.icobin2550 -> 0 bytes
-rw-r--r--plugins/WebView/res/stick.icobin2550 -> 0 bytes
-rw-r--r--plugins/WebView/res/stop.icobin2550 -> 0 bytes
-rw-r--r--plugins/WebView/res/unstick.icobin2550 -> 0 bytes
-rw-r--r--plugins/WebView/res/update.icobin2550 -> 0 bytes
-rw-r--r--plugins/WebView/res/updateall.icobin2550 -> 0 bytes
-rw-r--r--plugins/WebView/res/url.icobin2550 -> 0 bytes
-rw-r--r--plugins/WebView/res/version.rc9
-rw-r--r--plugins/WebView/res/web.icobin894 -> 0 bytes
-rw-r--r--plugins/WebView/res/webview.rc364
-rw-r--r--plugins/WebView/src/main.cpp285
-rw-r--r--plugins/WebView/src/resource.h139
-rw-r--r--plugins/WebView/src/stdafx.cxx18
-rw-r--r--plugins/WebView/src/stdafx.h36
-rw-r--r--plugins/WebView/src/version.h13
-rw-r--r--plugins/WebView/src/webview.cpp481
-rw-r--r--plugins/WebView/src/webview.h254
-rw-r--r--plugins/WebView/src/webview_alerts.cpp839
-rw-r--r--plugins/WebView/src/webview_cleanup.cpp797
-rw-r--r--plugins/WebView/src/webview_datawnd.cpp514
-rw-r--r--plugins/WebView/src/webview_getdata.cpp511
-rw-r--r--plugins/WebView/src/webview_opts.cpp1265
-rw-r--r--plugins/WebView/src/webview_services.cpp458
-rw-r--r--plugins/WebView/webview.vcxproj28
-rw-r--r--plugins/WebView/webview.vcxproj.filters4
37 files changed, 0 insertions, 7364 deletions
diff --git a/plugins/WebView/docs/changelog.txt b/plugins/WebView/docs/changelog.txt
deleted file mode 100644
index 7394a55a5a..0000000000
--- a/plugins/WebView/docs/changelog.txt
+++ /dev/null
@@ -1,6 +0,0 @@
--0.1.3.10
--Made separate Unicode and ANSI versions of plugin.
--Removed some old unneeded code.
-
-
- \ No newline at end of file
diff --git a/plugins/WebView/docs/license.txt b/plugins/WebView/docs/license.txt
deleted file mode 100644
index 7f1161073d..0000000000
--- a/plugins/WebView/docs/license.txt
+++ /dev/null
@@ -1,340 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- 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
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/plugins/WebView/docs/readme.txt b/plugins/WebView/docs/readme.txt
deleted file mode 100644
index 8c441c1feb..0000000000
--- a/plugins/WebView/docs/readme.txt
+++ /dev/null
@@ -1,1000 +0,0 @@
-***************************************
-* Webview Protocol Plugin by Bumper1 *
-***************************************
-
-
-
-About
------
-
-A plugin for Miranda IM which adds web pages as contacts to your contact list and can
-display text and/or changes within those pages in a window, as well as issue different types of
-alerts when changes occur.
-
-You need special status icons for this protocol, these icons are available here:
-http://www.miranda-im.org/download/details.php?action=viewfile&id=1274
--------
-WARNING
-----------
-
-On a large site (approx ~50kbytes) with "clean up display" option enabled the processor
-may approach 100% until the tags are removed and text formatting is complete.
-To minimise this only select a section of the web page to be displayed (the larger
-the selection the longer it will take to remove the tags and format the text).
-
-
-Installation:
-
-Copy the dll file to your plugins folder like any other plugin, but if you want the ping fuction to work, copy psite.bat to the same folder as miranda32.exe
-
-Features
---------
-Creates contacts on your Contact list representing web pages. A dialog displaying
-the text on that web page can be accessed through the contact menu of the contact
-that represents that web page.
-
-You can add more sites to the contact list using the Webview -> Add Contact
-item on the Main menu.
-You can update your Webview contacts all at once using the Webview -> Update All Webview
-Sites item on the Main menu.
-You can enable/disable timed updates of your contacts using the Webview -> Auto Update
-Enabled item on the Main menu.
-
-If you have the main menu items disabled and you have the TopToolbar plugin loaded Webview
-will load three buttons on the toolbar for Adding contacts, updating all Webview site and
-for enabling auto update.
-
-
-There are various options which you can set from each individual site/Webview contact on your
-contact list; you can set the name of the contact, the site URL, start string, end string, logging
-options, clean up of the display (removal of excess whitespace, tags and conversion of HTML
-character codes to displayable characters), and the action to take when double clicking on a
-contact (either open that site in a browser window or display site in the Webview data display
-window). You can adjust all these settings from the Contact Options item on each contact menu.
-The amount of white space removed can be set by the user for each contact.
-
-There is also an option to "Display whole web page"; if you use this option then it will
-display the whole web page in the data display window.
-If you use the option "Display between Start and End strings then you need to use
-unique strings on the web page to set the part of the page you want to display.
-
-The clean up display option stops tags being displayed in the data window.
-It also removes extra white space to help tidy up the display. The amount
-of white space removed can be set from options.
-
-You can also set various alerts on a contact by contact basis. You can set an alert to be
-issued if a certain string is present, if anything on the whole web page (or in the displayed
-portion of the web page) changes or you can have an alert issued only of a specific
-part of the web page changes.
-
-You can also set the method by which you want to be alerted on a contact by contact basis.
-You can set the alert to issue a popup using the PopUp plugin, open the data display
-window, display the alert using the OSD plugin or log to file.
-
-
-
-You can set the update interval, suppression of error messages, disabling of the main menu item
-(hiding main menu item requires a reboot for changes to be seen), whether to update data on
-Miranda startup, hiding/showing of the protocol icon on the status bar, updating data for a specfic
-site when its data display window is opened and text/background color all from the main
-Miranda Webview options. You can also set the text attributes.
-You can set an option to save the position of individual data display windows.
-
-You can set the error messages to be displayed using the PopUp
-plugin (or the OSD plugin if the Popup service isn't available).
-If you don't select errors to be displayed with the Popup plugin (or the OSD plugin), or neither
-the Popup or OSD plugins are loaded then the error is displayed using a balloon tip (if the OS
-supports it).
-
-When plugin is first installed the window updates once an hour.
-The timer can be set in options, setting timer to 0 disables updates
-( plugin will still do one update on start up even if timer=0).
-
-The "Update Data" button on the data window will re-download date from the specific website
-that data window uses.
-The "Stick to the front" button on the data window will allow or stop the display window
-staying on top of other windows.
-The "Find" button on the data window will allow you to find a word or phrase in the data
-window.
-
-You can copy, cut and delete text from the data display window as well
-as copy all, select all and clear all text by a drop down menu
-when you click with your right mouse key on the edit area of the data
-display window.
-
-The web page being available, down or lagging, server error returned or alert issued will all
-change the status icon on the contact list for the specific contact that even happened to.
-Online, offline, error and alert all have their own icon which can be set in Miranda's Icon
-options.
-
-N/A status icon means the site is offline or lagging.
-Away status icon means the server returned an error.
-Online status icon means site is working normally.
-Offline status icon means the protocol has been manually put offline.
-Occupied status icon means an alert has been issued for that site.
-DND status icon means plugin is downloading or processing data for that site.
-
-You can set the sound to be used when there is an alert in the Sounds section of Miranda
-Options.
-
-In PopUp options you can set the popup time out, various options for selecting the color of the
-popup and select left and right click options.
-
-You can view the complete source code for a web page if you set the Contact Options
-to display the whole web page, untick Clean Up Display then update (download)
-the data for that Webview contact.
-
-
-*****
-Here follow the essential settings you need to have
-right to get a result.
-*****
-
-There is an option in the contact options to put in the URL of the
-website you wish to display contents of.
-Note: Netlib doesn't support redirection, make sure you dont use
-plugin to monitor a site that does this because it will not work.
-
-There are two search string options which are used to find data on the
-web page. The first is the Start string, this is a string or sequences of tags and words in the source
-code of the web page where you wish to begin displaying data on your data window.
-The second is the End string, this is a string or sequences of tags and words in the source code of
-the web page where you wish to stop displaying data on your data window.
-Note: To find these display strings you should know how to look at the source code of
-the web page you are looking at. If you don't wish to use a browser to go find out what the
-source code looks the you can use the search strings like this:
-Start:<html
-End:</html>
-
-or
-Start:<HTML
-End:</HTML>
-
-If you do not want to have to use start and end strings you can select the option
-to display the whole site then the plugin will display the contents of the entire
-web page.
-
-There is a button to the Contact Options dialog to copy the display
-Start and End strings to the alert Start and End strings and set
-the event type to "Alert When A Specific Part of Web Page Changes".
-*****
-
-
-Requirements
-------------
- - Miranda IM 0.7++
-(Popup plugin recommended
- but not essential)
-
-Popup plugin is used for displaying error messages, but OSD plugin can also be used.
-
-
-To Do
---------
--Unicode support!!!
--need to review the plugin documentation and see what needs to be added or removed from it.
--window option to load cache into window and have it processed?
--create webview group on contactlist and automatically add sites to it?
--menu item to close all webview windows?
-
-
-
-Changelog
-----------
-0.0.1.0
--Use SETI@Home 1.3.0.0 sources as
- base code for Webview
--Change icons
--rename and remove various options
- and DBKeys
--Lets set some HTML headers to keep
- some sites happy
--Successfully displayed selected data from
- a site using search strings
-0.0.2.0
--Removed some old data window functions
--Prevent users using an end string, thats present
- in the data BEFORE the search string.
--Created a dialog for displaying data,
- discontinue using MessageBox()
--Don't open another dialog if one is
- already open
--Update dialog automatically after download
--Clear data in dialog only if new data exists
--Display complete page if no search strings
- set or if not present
--Added back "stick to front" and "hide/show" features
- to code.
--Treat a destroyed window the same as a hidden
- one in options and menus
--Added back right-click menu and automove
- to code(automove a little buggy)
--Add hyperlink to dialog
--Use dllname in titlebar
--Add resize code
--Added Multiwindow code(buggy)
-0.0.3.0
--Back out displaying complete page if no search strings
- set or if not present (results unpredictable)
--Update hyperlink when changed in options
--Back out code to allow automove to be used if
- dragged with titlebar.Caused plugin to consume
- all system resources when first minimized then attempted
- to restore/maximise/close.
--Make sure correct url value present before
- opening it using the hyperlink
--Removed option and key for disabling automove,
- user can just drag with the titlebar
--Removed all options and keys related to
- saving to file, not really needed,
- data can be copied and pasted from
- data window.
--Removed option for clearing old data.
- Code now does this automatically if
- needed
--Removed common dialog library
--#include <richedit.h>
-0.0.4.0
--Got rid of the old data structures
--Positioned the close button a little better
--Check to see that Miranda version is at least
- 0.3.2.0 before loading plugin
--Added richedit control to dialog
--Hotkeys working again
--Backout Multiwindow code, much too buggy
--Intermittant crash on startup.Cause seems
- to be that popup service isn't threadsafe.
- Don't call from thread, use a timer to call
- an error function that will check for presence
- of errors
--Unregister then reset hotkeys after dialog is
- created
--Got rid of some old unused variables
--rebase to 0x2d900000
--Use modeless dialog instead of
- MessageBox()
--Make sure there isn't more than one error
- dialog with same message created (assuming
- user closes all the error messages)
-0.0.5.0
--If the update interval is set to zero
- don't activate the error reporting timer on
- startup
--Only do update on startup if interval is not
- zero
--If the update interval is changed to a value
- other than zero then restart the error reporting
- timer
--Added advanced options to control displaying text
- before or after the search strings
--Got change background color option working
--Error check is now run one minute after update
--Added a button in advanced options to check
- for errors
--Make data dialog read only
--Error timer not restarting with correct interval
--Moved Load() to main.c
--Added support for PluginUninstaller
--Renamed license and readme to make
- easier to uninstall
--Got "use windows colors" option
- working
-0.0.6.0
--Replaced the right click menu with a button
- on the data display window
--Use main plugin icon for button
--Improved code for setting background
- color
--Got text color working
--Change memory usage depending
- on data download size
--Write downloaded data to the
- database(maybe just a temporary
- measure)
--Clear display before write new data
- to dialog
--Don't allocate/free memory or use
- download arrays if download unsuccessful
--URL not showing on dialog after reboot
--Initialise dialog with web data stored in
- database
--Cleaned up an icon
--Removed writing data to database
--Only free memory when new data available
- and in Unload() so all functions can
- access data
-0.0.7.0
--Wrote basic data save to file function
--Readded common dialog library and restored
- the saving functions to similar level to
- that in SETI@Home plugin
--Changed the advanced search options a little
- to avoid confusion.
--got basic tag erasing code in place
--Fixed crash in tag erasing code
--Got tag with attributes erasing working
--Support filtering both upper and lower
- case tags
--Remove excess whitespace
--Improvments to background color code
--small changes to text coloring code
--Got rid of "Use windows colors" option
--Put in an option to enable filtering
- of tags and whitespace
--Fixed crash while removing whitespace
- if search strings were not found/set
--Choice to enable using popup plugin or not
- even if popup service exists
--Fixed some error dialog bugs
--Fixed automove, now works better
- with titlebar, removed the easy move
- feature for now
--Don't save win size, position etc. when
- window max'ed or min'ed, also don't
- automove()
--Save width of window
--Fixed bug where the saved window size/position
- wasn't being used
--Save new window size/position after resizing
--Holding down ctrl key while moving
- data dialog disables automove
--Load old NETLIBHTTPREQUEST struct
- if Miranda version less than 0.3.3
--Remove some old unneeded variables
-0.0.8.0
--Warning on startup if Miranda version less than
- 0.3.2
--Disable "Use Popup Plugin" option if popup
- service isn't loaded
--Other small changes to Advanced Options
--Resistered the webview protocol and
- added basic services
--Allow return to be allowed in the richedit
- control with out closing the dialog
--Add maximise and minimise buttons to data
- dialog
--Got rid of horizontal scroll bar on data
- dialog, the richedit control automatically
- wordwraps
--Added contact to clist, make it name itself to
- the same as the dllname
--Don't add contact to list if a contact already
- exists
--Changed the minutes setting to spin control
-0.0.9.0
--Change main menu items dynamically
--Changed options dialog to make visually
- better.Removed some options, changed others
--Use balloon tip for error messages
--Removed "use popup plugin option".
- Plugin now uses the following 3 methods for
- displaying errors(in decreasing priority)
- *Balloon tip(if OS supports)
- *popup plugin(if service loaded)
- *Error dialog(if the neither balloon tip
- or popup can be used)
--If server is down but previously gave back
- a server error then make sure the server error
- is cleared before reporting that the server is down.
--Control contact status by global status and protocol
- status
--Don't download data if current protocol status
- is offline
--Change contact status depending on download
- *Download success = online
- *server offline = n/a
- *server error = away
--Added item to contact menu to show/hide
- data dialog
--Treat <a> same as other tags for now
--first public alpha release
-0.0.10.0
--Remove support for 0.3.2 NetLib
--Don't load plugin if Miranda version
- less than 0.3.3
--Remove hbrush, not used anymore
--Fixed intermittant crash when contact
- already exists
--minor changes to options
--added items to contact for update,stick to
- front and open web page.
--New icons for show/hide window om menu menu.
--Dynamically change contact menu item text
- and icons
--Some changes to drop down menu
--URLs now open webpage when clicked
--Added new Unstick icon
--Removed advanced search options.Search
- strings are now always included in displayed
- data (prior to tag filtering)
--Added Webview Group to clist to hold
- contacts generated by multiple instances
- of the plugin
-0.0.11.0
--make spin control work in the correct direction
--Moved options to Network group
--Dynamtically change text on data dialog
- menu items
--Remove stick to front and update data Main menu
- items
--Stop sending Content-Length header to sites
--Moved save to file options from advanced
- options dialog to options dialog
--Removed check for errors option
--Made logging to file an advanced option
--Added multiple monitor support
--Destroy data window when ME_SYSTEM_PRESHUTDOWN
- event occurs
--reduce disk I/O by storing colors,
- window height and window position
- in global variables.Variables only
- read/written to DB on start/exit.
--added copy/copy all/select all menu to right click
-0.0.12.0
--Added size grip to data dialog
--Added separate stick/unstick button to data dialog
--Removed stick/unstick item from drop down menu
--Made buttons into flat buttons
--Make WM_CLOSE hide the data window instead of
- destroying it.
--Removed Update and Stick/Unstick contact menu
- items
--Moved main menu item position to the same place
- as other protocols
--Removed advanced option dialog for now
--Updates to README
-0.0.13.0
--Double clicking on contact opens web page in browser
--Added some comments to menu items. Some menu items
- will be removed in a future release, and other new
- items will be added(new items are disabled for now)
--New icons for Add user and Contact options menu items
- and new icon for drop down menu button on data window
--Added some more tags to the filter
--Change (Latin, Numeric and some punctuation) HTML
- character codes into characters.
--Change data window caption to the URL.
--Change contact name to the URL.
-0.0.14.0
--Added icon to data window titlebar
--Filter out some more tags
--Added update button to data window
--Removed drop down menu button (no
- need for anymore, all of the functions
- of it can be accessed from the data window)
--Added Clear All, Paste, Cut and Delete
- to right click menu
--Fixed a bug where double clicking on any
- contact from any protocol opened up
- a page in a browser.. opps
-0.0.15.0
--Added tooltips to buttons
--added more tags to filter
--Added contact options dialog (disabled
- for now)
--Crash when tag filter sometimes tries to write
- outside of the array (hopefully fixed).
--Crash with some sites crash if free
- szInfo after tags are filtered
- out(hopefully fixed)
--Crash (possibly related to the crashes above),
- no idea what causes it really but fixed by
- a delay midway in the tag filtering function
-0.0.16.0
--Added some more tags to filter
--Opps..was dependant on other plugins
- to load richedit into memory
--Removed options in Miranda options
- for hiding and sticking window to the
- front(no longer needed because soon
- will be moving to contact based options)
-0.0.17.0
--Enabled the contact optons dialog
--Removed Url, start string and start string
- options from plugin options to the contact
- options dialog
--Store url, start string and start string
- in the contact settings not in the plugin
- module in the database.
--reduced some crash risks
--Added option to enable updating data on
- Miranda startup
-0.0.18.0
--possible crash when freeing memory in unload,
- free in pre-shutdown instead (possibly isn't
- the solution)
--Enable the add contact menu item.
--Some other changes to usage of malloc
- and free
--Small delay added before downloading data
- on startup, also reduced a delay else
- where in the code
--Added code to check multiple sites
--Some more code to try and avoid crashes
--Change individual contact status to indicate
- site status
--Remove hotkeys (possibly temporarily)
--Move save to file options to contact options
-0.0.19.0
--More stability improvements
--Stick to front option working again
--Disable file save options in add contact dialog
--Code cleanup
-0.0.20.0
--URL sometimes corrupted
--Got background and text color change options
- working
--Removed feature where timer set to zero stopped you
- downloading data manually
--Clear all data windows when changing text/background
- color (possibly a temporary measure)
--More code cleanup
-0.0.21.0
--User can choose either to open web page
- in a browser or opening the data window
- as the action taken when double clicking
- on a webview contact
--Option to update data when data window
- opened
--Removed old show/hide contact menu item
- and replaced with a new open/close menu item
- with a new icon
--New add contact icon and show more icons
- on dialogs
--Better handling of protocol/global status
--Other minor fixes
--Added a new contact option to add
- contact/site name.
--When adding a new site,if you leave the site name
- blank then the site name will automatically be
- the same as the sites URL
-0.0.22.0
--Make an option to hide icon on status bar
--show the icon again if there is a crash
--Make the titlebar text of the contacts
- data window the same as the name of the
- contact
--only look for end string further down
- the page from the start string
--Remove garbage from end of displayed
- text
-0.0.23.0
--Got the options on the data display window
- working properly again
--Fixed a bug where double clicking on a webview
- contact sometimes opened a message window.
--Cleaned up code
-0.0.24.0
--Allow user to set separate double click action
- for each webview contact from the contact options.
--Updated icons.
--Faster (and more stable) method for copying web data
- into memory used.
--Use Save As dialog instead of Open
- to select log file.
--Added a search button to Webview data window.
- Search is pretty basic as yet but it shows you
- the approximate area of the window where the search
- keyword was found.
--Use monospaced font in data window because its easier
- to read text in window. Also made font bigger for the same
- reason.
--Status messages displayed on status bar of data window.
--Code to remove more unsupported symbol codes and other
- unwanted data from the data window when the clean
- up display option is selected.
--Updates to the README.
-0.0.25.0
--The Find button now can find and highlight the
- exact position of the requested word in the
- data window.
--The Find button's text search is no longer case
- sensitive.
--Status bar on data display window now tells you
- the time the last update of data occured from
- that window.
--You can now set the exact amount of whitespace
- to filter out of the data window display through
- a trackerbar control in Miranda options.
--Font face and size as well as attributes bold, italic
- and underline can now be set from Miranda options.
--Some stability fixes and slightly better support for
- large sites.
--Added more panes to the status bar.
--Status bar on data display window now tells you
- the number of bytes of data displayed in that
- window and the number of bytes downloaded.
--Fixed a bug which caused some of the text not to
- be formatted correctly with larger sites.
--Some other minor changes.
-0.0.26.0
--Removed some spaces left in the formatted text by the
- character code to symbol function.
--Compiled code with some optimisations.
--Added options to Miranda options to select
- the method of tag filtering; accurate, fast
- or dynamic filtering.
--Moved Display Clean-up options to the contact
- options dialog so you can set different options
- for each site.
--Moved options back to Plugins group.
--Some bug fixes for the Add Contact/Contact
- options window.
--Fixed bug where part of the code regarded
- a error reply from the server as a download
- success.
--Status messages for "Server down or lagging",
- "Server replied with an error code" and "Download
- successful now about to process data" added to
- status bar messages on the data display window.
--Some more tags added to tag filter
--More changes to the README.
-0.0.27.0
--Make sure the first letter of the plugin name
- in options is always uppercase.
--Error messages now show for each individual site
- using either balloon message on the system tray
- icon or using popup plugin if available. The
- popup messages are better and that option is
- recommended.
--New Contact Options button added to the data
- display window which replaces the Options menu item
- on the contact menu.
--Some changes to code that removes the parts of the webpage
- that are supposed to remain hidden.
--There is only one method of filtering now; the fast
- filter. All options for choosing filter method removed.
--Added Alert button to data display window.
--There are two alert methods used for now; popup
- plugin and sound file. There is one alert event
- for now; string present in downloaded data.
--Small problem with plugin's response to global
- status changes fixed.
-0.0.28.0
--Added some more translatable strings.
--Fixed some bugs in and added some improvements
- to the Alert Options dialog.
--Log to file was removed from Contact Options
- and is now an Alert option.
-0.0.29.0
--Made the plugin information in the plugin listing
- more descriptive.
--Fixed bug with hyperlink on data display window by
- making control a button.
--Added cancel and Apply buttons to Add Webview Site,
- Contact Options and Alert Options windows.
--If the user does not supply a name when creating
- a new webview contact then the plugin no longer just
- uses the URL of the site as a name but requests
- that the user supply a name. Using a URL as a
- name just looked too messy.
--When an alert is issued the date and time of the alert
- is appended to the contact name.
--The contact name in Contact Options is the contact name without
- any alert time and date appended to it.
--Fixed bug which where the presence of an ampersand in the
- url caused letters to be underlined or missing in the
- text of the url button on the data display window.
--Removed the sound alert. Now you can instead set
- a sound be played when an alert occurs from the
- same Sounds group in options that other plugins
- use.
--Disabled the apply button on the add contact window.
--Added more translatable strings including error
- messages, menu items and status bar messages.
--Fixed bug where the description of the amount
- of white space removal was not showing in the
- Add Webview Site window.
--Other minor changes.
-0.0.30.0
--Set the titlebar text of the display data window
- to contact name without any alert time and date
- appended to it.
--Added event-type "Alert When The Web Page Change".
- This produces a user-defined alert when the the
- contents of a page change from what was on the page
- when it was last checked. This option creates
- a file on the users harddrive for every contact
- this option is set for.
--Update URL displayed on the data display window
- if that URL is changed in Contact Options.
--Fixed bug which caused buttons on data display
- window not to work if URL was changed.
--Use PUShowMessage to generate any popup error
- messages.
--Contact Options now requests that the user supply a name
- for a contact if one is not already supplied.
--Contact Options and Add Webview Site windows now check
- to see if there are any invalid symbols in the contact name
- (this is needed to make sure the file name is valid for the
- cache file).
--Change the titlebar text of the data display window when
- the contact name is changed and the changes are applied (
- used to work only if user pressed "Ok").
--Made some more of the text on different windows titlebar's
- translatable.Also made some changes to the code to allow
- the translation of some of the dynamic strings which occur
- on the data display windows status bar and in alert popups.
--Added an alert type to open the data display window when
- a user defined event occurs.
--Fixed bug which caused the icon of the (Disable) Stick to the
- Front button always to show the Disable icon when the
- window was first opened by double clicking on a contact.
-0.0.31.0
--Make sure the time and date is not appended to the contact
- name on contact list UNLESS an alert has been issued.
--Miranda Translator tool was not translating some strings
- correctly even though they were translatable. Made changes
- to the code to help the Translator extract the correct strings.
--Make the appending of the time of the last alert to the contact
- list name a contact option.
--Added a Popup option dialog to the PopUps group in Miranda
- options so users can set the color of the Alert popups separately
- from the color of the data display window. The user can also set
- the popup delay from this option dialog.
--Added an option to Alert Options to allow the user to define whether
- the date is added to the contact name as a suffix or a prefix.
--increased thread safety for popups.
--Added webview to the "KnownModules" list.
--User can now control whether the time added to the contact name
- is in 24 hour or 12 hour format.
-0.0.32.0
--Made an install script for Miranda Installer.
--Added an item to the Main menu to allow the user to update
- all Webview sites at once.
--Cleaned up indents in source code.
--Fixed bug in the the code which removes unsupported character
- code from the display.
--Fixed bug in code which caused the plugin not to clean up the display
- if one or more of the Start or End strings was not present on
- the web page even if plugin didn't need to check for these strings.
--Separated the sources out into smaller files.
--There was no way of adding a new webview site if the user had disabled
- the main menu items. Added options to take place of the main menu items
- in the main Miranda options dialog and made sure these options are not
- enabled unless the main menu is disabled.
--Right clicking on a popup now opens the web site in a browser window.
--Added "Only Update Window on Alert" to main Miranda options to prevent
- contents of the data display window being overwritten if there
- is not an alert.
--Changed the automove function so it no longer moves the data display
- window back on screen (if the user moves it off of it) but just
- makes sure the position will be on screen the next time it is created.
--If Miranda crashed on exit then the window colors were not being
- saved; save colors when the color options are changed to prevent this
- happening.
--Added a main menu item to enable or disable automatic updates of webview
- sites.
--Increased time interval range from 0-99 minutes to 0-999 minutes.
--Fixed some bugs in the the Popup options.
--Added option to use the same colors in the alert popup as is
- used in the data display window.
--User can now set the left and right click popup actions from
- popup options. User can set the actions to open data display window,
- open web page or dismiss popup.
-0.1.0.0
--First Beta release
--Make sure the first letter of the Webview menu title on
- the Main menu is uppercase.
--Use the Miranda Find/Add Contacts dialog to add webview
- sites to the contact list.
--Use the URL to create a name for the contact.
--Make sure the update button on the data display window
- always can update the text in the window even if the
- "Only Update Window on Alert" option ticked.
--Fixed bug which caused an invalid window position to be written
- to the database if data display window was minimised when
- Miranda exited.
--Make sure the site name in Contact options and on the data
- display window's titlebar is the same as the contact name
- on the contact list unless it has a date added to it.
--If Miranda crashed on exit then the window position was not being
- saved; save position when the window is closed to prevent this
- happening.
--On slower systems data display window was seen in a different
- area of the screen when opened then it was seen to move to
- the correct position on the screen. Put fixes in place to correct this.
--Added an event type to test if a specific area of a webpage has changed
--Fixed some bugs in the Alert Options dialog.
--Fixed bug which caused update button to become disabled if the
- user clicked the button when that site was already being downloaded.
--Check for alerts BEFORE filtering cleaning up the text.
--Added the option to display alerts using the OSD plugin.
--Fixed a bug that caused the plugin to falsely report that
- the monitored website had changed.
--Make sure the Apply buttons on the Contact Options and the
- Alert Options windows is disabled unless there is a change
- made to the options.
--If either the display or alert start/end strings aren't present on
- on a site issue an alert.
--Start/End string not present and invalid search parameter errors
- now set the contact to Away status (just like server error codes).
--Added a button to the Contact Options dialog to copy the display
- Start and End strings to the alert Start and End strings and set
- the event type to "Alert When A Specific Part of Web Page Changes".
--If a server replies with an error code display the exact error code
- returned.
--Find/Add dialog was truncating URL's.
--Added more compact Contact Options and Alert Options dialogs
--Made the comboboxes in the Alert Options dialog translatable.
--Some improvements to the code that fixes the underlined text
- bug on the url button.
--Disable both the Contact Options and the Alert Options button
- when then either then Contact Options or the Alert Options
- button is opened (need to do this to avoid a bug).
--Allow user to have more than one contact with the same URL
- if those contacts have different names. If more than one
- contact has the same name and URL then issue a warning
- when using buttons on those contacts data display window.
--Allow user to add contacts with the same URL and an existing
- Webview contact.
--Append a random number to the contact name when it is created
- to avoid creation of Webview contacts with the same name if
- they are using the same URL.
--Added a status bar message to tell the user that a site is currently
- downloading if they try to update another site manually.
--Error now display using either PopUp plugin or the OSD plugin
- if the "display errors using PopUp plugin" option is selected.
- The plugin tries to use the PopUp plugin first but if that service
- is not available then it uses the OSD plugin (if plugin is loaded).
--Removed some unneeded preshutdown code.
--Removed support for Plugin Uninstaller (that plugin will not work in
- Miranda 0.4 anyway).
--Removed main Webview option control which was used to add new Webview
- contacts (the user can easily do this through the main menu item or
- by the Find/Add dialog if the main menu item is disabled).
--Updates to the README.
-0.1.1.0
--Some improvement to the code that converts HTML character entities to
- symbols.
--Remember contact previous status on startup.
--Stop the User Details dialog from constantly displaying "...Updating...".
---Button in the Contact Options dialog to copy the Start and End strings
- was not setting the event type to "Alert When A Specific Part of Web Page Changes".
--If "Update window only on Alert" option was ticked statusbar was always displaying
- "processing data, please wait" if all the sites were updated at the same time. Corrected
- and added another status message.
--Make sure all existing Webview contacts are set to online status the first time this
- version of Webview is loaded.
--Added a control to the main options to allow the user to set a delay of up to 120
- seconds before Webview updates on start-up.
--Make sure the timed updates cannot occur until the update on start up is finished.
--Don't log to file twice if both types of start/end strings are not present and there is an
- alert to indicate this.
--Automatically delete the cache file (if one exists) when deleting a Webview contact
- or when alerts are disabled for that contact.
--Webview now knows when a contact is renamed on the contact list.
--Rename the cache file (if one exists) when a contact is renamed.
--Added the option to save the position of individual data display windows.
--Added some delays to make the plugin slightly less CPU usage intensive
- during data download and processing.
--Added an advanced option to disable the download protection code if
- the user wishes to do this. This has the advantage of being able to
- download more than one site at the same time but it also potentially
- could cause corruption of data.
--Fixed a bug in the main Webview options.
--Display time/date in the logs and on the status bar in the
- users own language.
--Bug causing last letter in display to be sometimes repeated.
- This isn't a complete fix but it should stop the worst cases.
--Added option to Contact Options so user can choose to log
- data to file in its raw state or with all the tags removed.
--Added a new status (DND) to indicate the plugin is downloading or processing
- data for a particular site.
--Filter out (most) CSS attributes.
--When part of the web page has changed, change the color of the text
- and background (and select the text) in the part of the page you are
- monitoring so that the user can find this portion of the page easier
- within the larger body of the displayed text.
--Made some more space for translation strings in options.
--Fixed some bugs in the EraseBlock function which causes
- the plugin to hang while processing data.
--Data window too small when it opened the first time. Made
- window bigger.
--Use SkinAddNewSoundEx instead of SkinAddNewSound.
--Prevent Miranda versions less than 0.4.0.0 from loading plugin.
--Cleaned up code.
--Added TopToolBar buttons for adding Webview sites,updating
- all Webview sites and disabling/enabling auto update.
--Only load TopToolBar buttons if Main Menu items are disabled.
--0.1.3.1
--added "prettier" icon resources.
--Removed" Add Webview Site from main menu.
--Added code to get ride of <style> </style>.
--removed TopToolbar support
--Added Contact Options and Contact Alert Options to the contact menu.
--Moved from PLUGININFO to PLUGININFOEX structure
--Moved Webview's options from "Plugins" to "Network" in Miranda's options page.
--Improved language pack support.
--Added menu item to open cache folder.
--New icon for Update All main menu item and Open Web Page contact menu item.
--Added main menu item to mark all sites read
--Added contact menu item to update site data.
--Added Contact Menu item to ping the web site to test if there is any issue with connectivity.
--0.1.3.2
--Fixed an old bug where a DB value was getting written to any contact which was double clicked
- regardless of its protocol.
--The URL of a Webview contact is now also the contact's "Web Page" in user details.
--Stop displaying unneeded status icons on the status bar.
--Removed BBCode from popups to make compatible with YAPP.
--The progress of data processing is shown on the data window.
--Added contact menu item to stop the data processing on a site.
--0.1.3.3
--Stopped translating some clist items that should not be translated except by the core.
--Add random number to contacts name when contact is created, if its the same as the
- name of another webview contact on the list.
--When updating all sites, don't wait for one site to finish updating before updating
- the next.
--The contact's StatusMsg now reports the site updating, offline, online, alert issued and site errors.
--Removed an old part of the data window that is no longer needed.
--Added a button to the data window to allow the user to stop data processing.
--Text in data window updates during data processing.
--0.1.3.4
--Backed out a change in the code which was causing false alerts. Contacts have to
- wait for other sites to stop updating before updating themselves.
--Smaller cache size.
--0.1.3.5
--Destroy services on exit.
--Popup message when all sites have been updated.
--If Miranda crashes, the status icon no longer reappears on the statusbar bar, if
- the user had originally chosen to hide it.
--0.1.3.6
--Smaller dll size.
--Swapped the stick and unstick icons.
--Added option to Main Options to display site data in a Popup when there is an alert.
--Show error message if psite.bat doesn't exist and user is attempting to ping a site.
--Show error message if cache folder doesn't exist and user is attempting to open it.
--0.1.3.7
--Fixed a potential crash when updating contacts.
--If user renames a contact to a name containing a forbidden character,
- there is an error popup to inform them and the character is converted to a "_"
- and a random number appended to the end of the name.
- -0.1.3.8
- -The "Update on Window Open" option has been changed to "Load Page on Window Open".
-This change means when the option is selected, the window will first of all attempt to
-load information into the window from the cache, and only if the cache file doesn't exist
-will it attempt to download the web page and display it.
--Mark site as read when window is opened and window is set to load data on open.
--0.1.3.9
--Prevent a crash when "Add Contact" is used instead of "Find/Add Contact", and also when
- "Find/Add Contact" is used incorrectly.
-- Opening a site in a browser window using double click, contact menu, the url button
- on the data window or clicking on popups, all set the contacts status to online/read.
--Added a counter to the Webview main menu, which shows how many minutes to the next update.
--Changed the "Permanent" and "From Popup Plugin" options in popup options, from radio
- buttons to buttons.
--0.1.3.10
--Made separate Unicode and ANSI versions of plugin.
--Removed some old unneeded code.
-
-
-
-
-
-
-
-
-
-
-
-*********************
-Copyright
----------
-Copyright (C) 2011 Vincent Joyce
-
-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.
-
-
-
diff --git a/plugins/WebView/docs/todo.txt b/plugins/WebView/docs/todo.txt
deleted file mode 100644
index 58bece465a..0000000000
--- a/plugins/WebView/docs/todo.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/plugins/WebView/res/Icon_14.ico b/plugins/WebView/res/Icon_14.ico
deleted file mode 100644
index e7577d004b..0000000000
--- a/plugins/WebView/res/Icon_14.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/WebView/res/alert.ico b/plugins/WebView/res/alert.ico
deleted file mode 100644
index 86d8a9819a..0000000000
--- a/plugins/WebView/res/alert.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/WebView/res/find.ico b/plugins/WebView/res/find.ico
deleted file mode 100644
index 49ce7340b6..0000000000
--- a/plugins/WebView/res/find.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/WebView/res/folder.ico b/plugins/WebView/res/folder.ico
deleted file mode 100644
index e9777a4596..0000000000
--- a/plugins/WebView/res/folder.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/WebView/res/markallread.ico b/plugins/WebView/res/markallread.ico
deleted file mode 100644
index 1fd4064a75..0000000000
--- a/plugins/WebView/res/markallread.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/WebView/res/options.ico b/plugins/WebView/res/options.ico
deleted file mode 100644
index ddb72fb8ca..0000000000
--- a/plugins/WebView/res/options.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/WebView/res/ping.ico b/plugins/WebView/res/ping.ico
deleted file mode 100644
index 2f9b702beb..0000000000
--- a/plugins/WebView/res/ping.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/WebView/res/popup.ico b/plugins/WebView/res/popup.ico
deleted file mode 100644
index f83a62a64c..0000000000
--- a/plugins/WebView/res/popup.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/WebView/res/show_hide.ico b/plugins/WebView/res/show_hide.ico
deleted file mode 100644
index afae803b69..0000000000
--- a/plugins/WebView/res/show_hide.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/WebView/res/stick.ico b/plugins/WebView/res/stick.ico
deleted file mode 100644
index a11221d6c6..0000000000
--- a/plugins/WebView/res/stick.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/WebView/res/stop.ico b/plugins/WebView/res/stop.ico
deleted file mode 100644
index b62ed82acf..0000000000
--- a/plugins/WebView/res/stop.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/WebView/res/unstick.ico b/plugins/WebView/res/unstick.ico
deleted file mode 100644
index edb7c1f4e7..0000000000
--- a/plugins/WebView/res/unstick.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/WebView/res/update.ico b/plugins/WebView/res/update.ico
deleted file mode 100644
index c6e4c359a7..0000000000
--- a/plugins/WebView/res/update.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/WebView/res/updateall.ico b/plugins/WebView/res/updateall.ico
deleted file mode 100644
index 482bbf2826..0000000000
--- a/plugins/WebView/res/updateall.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/WebView/res/url.ico b/plugins/WebView/res/url.ico
deleted file mode 100644
index 6baf15c3c5..0000000000
--- a/plugins/WebView/res/url.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/WebView/res/version.rc b/plugins/WebView/res/version.rc
deleted file mode 100644
index 5a5ddd63ed..0000000000
--- a/plugins/WebView/res/version.rc
+++ /dev/null
@@ -1,9 +0,0 @@
-// Microsoft Visual C++ generated resource script.
-//
-#ifdef APSTUDIO_INVOKED
-#error this file is not editable by Microsoft Visual C++
-#endif //APSTUDIO_INVOKED
-
-#include "..\src\version.h"
-
-#include "..\..\build\Version.rc"
diff --git a/plugins/WebView/res/web.ico b/plugins/WebView/res/web.ico
deleted file mode 100644
index 2b5a44dbf9..0000000000
--- a/plugins/WebView/res/web.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/WebView/res/webview.rc b/plugins/WebView/res/webview.rc
deleted file mode 100644
index 34522274e1..0000000000
--- a/plugins/WebView/res/webview.rc
+++ /dev/null
@@ -1,364 +0,0 @@
-//////////////////
-#include <windows.h>
-#include "..\src\resource.h"
-///////////////////
-
-
-
-
-/////////////////////////////
-////Icons
-/////////////////////////////
-
-IDI_SITE ICON DISCARDABLE "web.ico"
-IDI_STICK ICON DISCARDABLE "stick.ico"
-IDI_UNSTICK ICON DISCARDABLE "unstick.ico"
-IDI_URL ICON DISCARDABLE "url.ico"
-IDI_OPTIONS ICON DISCARDABLE "options.ico"
-IDI_UPDATE ICON DISCARDABLE "update.ico"
-IDI_SHOW_HIDE ICON DISCARDABLE "show_hide.ico"
-IDI_FIND ICON DISCARDABLE "find.ico"
-IDI_ALERT ICON DISCARDABLE "alert.ico"
-IDI_FOLDER ICON DISCARDABLE "folder.ico"
-IDI_UPDATEALL ICON DISCARDABLE "updateall.ico"
-IDI_MARKALLREAD ICON DISCARDABLE "markallread.ico"
-IDI_PING ICON DISCARDABLE "ping.ico"
-IDI_STOP ICON DISCARDABLE "stop.ico"
-
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-//////////////////////////
-//// Main Options
-///////////////////////////
-IDD_OPT DIALOGEX 0,0,280,231
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD
-EXSTYLE WS_EX_CONTROLPARENT
-FONT 8, "MS Shell Dlg", 0, 0, 0x1
-BEGIN
- //
-
- GROUPBOX "Webview",IDC_STATIC,1,11,278,63,WS_GROUP
- //
- LTEXT "Update data every",IDC_STATIC,6,26,100,8
- EDITTEXT IDC_TIME,84,26,28,12,ES_AUTOHSCROLL | ES_NUMBER
- CONTROL "Spin1",IDC_SPIN1,"msctls_updown32",UDS_SETBUDDYINT |
- UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS |
- UDS_NOTHOUSANDS,125,11,7,11
- LTEXT "minutes",IDC_STATIC,113,26,25,8
- //
- LTEXT "Delay update on start",IDC_STARTDELAYTXT,6,49,100,8
- EDITTEXT IDC_START_DELAY,84,49,28,12,ES_AUTOHSCROLL | ES_NUMBER
- CONTROL "Spin2",IDC_SPIN2,"msctls_updown32",UDS_SETBUDDYINT |
- UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS |
- UDS_NOTHOUSANDS,125,34,7,11
- LTEXT "seconds",IDC_STDELAYSECTXT,113,49,36,8
- //
- CONTROL "Hide icon on status bar",IDC_HIDE_STATUS_ICON,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,150,20,128,8
- CONTROL "Disable main menu items",IDC_DISABLEMENU,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,150,30,128,8
- CONTROL "Load page on window open",IDC_UPDATE_ON_OPEN,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,150,40,128,8
- CONTROL "Update data on startup",IDC_UPDATE_ONSTART,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,150,50,128,8
- CONTROL "Only update window on alert",IDC_UPDATE_ONALERT,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,150,60,128,8
-
-///////////
-
- GROUPBOX "Window appearance",IDC_STATIC,1,75,278,62
- LTEXT "Background color:",IDC_STATIC,16,85,69,8
- CONTROL "",IDC_BGCOLOR,"ColourPicker",WS_TABSTOP,85,85,20,8
- LTEXT "Text color:",IDC_STATIC,16,95,69,8
- CONTROL "",IDC_TXTCOLOR,"ColourPicker",WS_TABSTOP,85,95,20,8
-
- COMBOBOX IDC_TYPEFACE,16,105,136,182,CBS_DROPDOWN | CBS_SORT |
- WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_SCRIPT,58,120,72,68,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
-
- COMBOBOX IDC_FONTSIZE,16,120,40,69,CBS_DROPDOWN | WS_VSCROLL |
- WS_TABSTOP
- CONTROL "Bold",IDC_FONT_BOLD,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,160,90,48,8
- CONTROL "Italic",IDC_FONT_ITALIC,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,160,100,48,8
- CONTROL "Underline",IDC_FONT_UNDERLINE,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,160,110,58,8
- CONTROL "Save individual window positions",IDC_SAVE_INDIVID_POS,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,132,122,146,8
-
-///////////
- GROUPBOX "Error messages",IDC_STATIC,1,137,278,25
- CONTROL "Suppress error messages",IDC_SUPPRESS,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,16,149,113,8
- CONTROL "Display using popup or OSD plugin",IDC_ERROR_POPUP,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,140,149,130,8
-//////////
- GROUPBOX "Expert options",IDC_ADV_GRP,142,163,137,35,WS_GROUP
- CONTROL "Disable download protection",IDC_NO_PROTECT,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,148,175,130,8
- LTEXT "(not recommended)",IDC_NOT_RECOMND_TXT,148,185,122,8
-//////////
- GROUPBOX "Display data in popup on alert",IDC_STATIC, 1, 164, 139, 34
- CONTROL "Display data in popup", IDC_DATAPOPUP , "Button",
- BS_AUTOCHECKBOX | WS_TABSTOP, 16, 177, 120, 8
-/////
- LTEXT "You may need to restart Miranda NG for this change to take effect.",IDC_RESTART,
- 30,220,230,8,NOT WS_VISIBLE
-
-
-END
-
-///////////////////////////////////////////////////////////////////////////////////
-//data window
-////////////////
-IDD_DISPLAY_DATA DIALOGEX 0, 0, 212, 150
-STYLE DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP |
- NOT WS_VISIBLE | WS_SYSMENU | WS_CAPTION | WS_THICKFRAME |WS_MAXIMIZEBOX |
- WS_MINIMIZEBOX
-EXSTYLE WS_EX_CONTROLPARENT
-CAPTION ""
-FONT 8, "MS Shell Dlg", 0, 0, 0x1
-
-BEGIN
-
-CONTROL "",IDC_UPDATE_BUTTON,"MButtonClass",WS_TABSTOP,5,1,16,14
-CONTROL "",IDC_STICK_BUTTON,"MButtonClass",WS_TABSTOP,25,1,16,14
-CONTROL "",IDC_FIND_BUTTON,"MButtonClass",WS_TABSTOP,45,1,16,14
-CONTROL "",IDC_OPTIONS_BUTTON,"MButtonClass",WS_TABSTOP,65,1,16,14
-CONTROL "",IDC_ALERT_BUTTON ,"MButtonClass",WS_TABSTOP,85,1,16,14
-CONTROL "",IDC_STOP ,"MButtonClass",WS_TABSTOP,105,1,16,14
-CONTROL "",IDC_OPEN_URL ,"MButtonClass",WS_TABSTOP,1,19,212,8
-CONTROL "",IDC_DATA,"RichEdit50W", ES_LEFT | ES_MULTILINE | ES_WANTRETURN | WS_CHILD | WS_VISIBLE | WS_VSCROLL, 1, 28, 209, 110
-CONTROL "", IDC_STATUSBAR, "msctls_statusbar32", SBARS_SIZEGRIP | WS_CHILD | WS_VISIBLE, 128, 4, 60, 12
-
-END
-
-
-///////////////////////////////////////////////////////////////////////
-///contact options
-//////////
-IDD_CONTACT_OPT DIALOGEX 0, 0, 367, 115
-STYLE DS_MODALFRAME | DS_3DLOOK | DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_CAPTION
-EXSTYLE WS_EX_CONTROLPARENT
-FONT 8, "MS Shell Dlg", 0, 0, 0x1
-BEGIN
-//
- GROUPBOX "Webview",IDC_STATIC, 4, 1, 239, 44 ,WS_GROUP
- RTEXT "Contact name:",IDC_STATIC,7, 14, 72, 8
- EDITTEXT IDC_SITE_NAME, 80, 12, 158, 12 ,ES_AUTOHSCROLL
- RTEXT "URL:",IDC_STATIC,7, 28, 72, 8
- EDITTEXT IDC_URL, 80, 26, 158, 12,ES_AUTOHSCROLL
- //
- GROUPBOX "Display", IDC_STATIC, 245, 1, 120, 92,WS_GROUP
- CONTROL "Between start and end strings",IDC_U_SE_STRINGS,"Button",
- BS_AUTORADIOBUTTON, 249, 25, 113, 8
- CONTROL "Whole web page",IDC_U_ALLSITE,"Button",
- BS_AUTORADIOBUTTON, 249, 12, 113, 8
- RTEXT "Start:",IDC_STATIC, 249, 39, 30, 8
- EDITTEXT IDC_START, 280, 37, 70, 12 ,ES_AUTOHSCROLL
- RTEXT "End:",IDC_STATIC,249, 53, 30, 8
- EDITTEXT IDC_END, 280, 51, 70, 12 ,ES_AUTOHSCROLL
- DEFPUSHBUTTON "Copy strings to alerts",IDC_CPY_STRINGS, 249, 66, 101, 12
- //LTEXT "(pastes strings)",IDC_CPY_STR_TXT, 270, 81, 92, 8
- //
- GROUPBOX "Double click action",IDC_STATIC, 4, 47, 111, 47 ,WS_GROUP
- CONTROL "Opens web page",IDC_DBLE_WEB,"Button",
- BS_AUTORADIOBUTTON, 6, 68, 105, 8
- CONTROL "Opens data window",IDC_DBLE_WIN,"Button",
- BS_AUTORADIOBUTTON,6, 81, 105, 8
- //
- GROUPBOX "Display clean-up",IDC_STATIC, 117, 47, 126, 47 ,WS_GROUP
- CONTROL "Remove HTML",IDC_CLEAN,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP, 120, 59, 100, 8
- CONTROL "Slider1",IDC_RWSPACE,"msctls_trackbar32",TBS_BOTH |
- TBS_NOTICKS | WS_TABSTOP,120, 70, 100, 8
- LTEXT "",IDC_RWSPC_TEXT, 120, 81, 120, 8 ,WS_VISIBLE
- //
- DEFPUSHBUTTON "OK",IDOK, 207, 98, 50, 14
- PUSHBUTTON "Cancel",IDC_OPT_CANCEL, 261, 98, 50, 14
- PUSHBUTTON "Apply",IDC_OPT_APPLY, 315, 98, 50, 14
-
-
-END
-
-/////////////////////////////////////////////////////////////////////////////////////
-//find window
-//////
-IDD_FIND DIALOGEX 0, 0, 230, 46
-STYLE DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
-EXSTYLE WS_EX_CONTROLPARENT
-CAPTION "Find"
-FONT 8, "MS Shell Dlg", 0, 0, 0x1
-BEGIN
- EDITTEXT IDC_FINDWHAT,48,11,115,12,ES_AUTOHSCROLL
- DEFPUSHBUTTON "&Find next",IDC_OK,173,7,50,14
- PUSHBUTTON "Cancel",IDC_CANCEL,173,24,50,14
- LTEXT "Find what:",IDC_STATIC,7,13,39,9
- GROUPBOX "",IDC_STATIC,48,24,115,18
- LTEXT "Search was completed.",IDC_SEARCH_COMPLETE,
- 52,30,90,8,NOT WS_VISIBLE
-END
-
-
-
-///////////////////////////////////
-//Alert Options
-////////
-IDD_ALRT_OPT DIALOGEX 0, 0, 337, 185
-STYLE DS_MODALFRAME | DS_3DLOOK | DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_CAPTION
-EXSTYLE WS_EX_CONTROLPARENT
-FONT 8, "MS Shell Dlg", 0, 0, 0x1
-
-BEGIN
-
- GROUPBOX "Events and alerts",IDC_STATIC,3, 4, 331, 71,WS_GROUP
- CONTROL "Enable alerts",IDC_ENABLE_ALERTS,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP, 9, 13, 82, 13
- CONTROL "Always log to file",IDC_ALWAYS_LOG,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP, 9, 25, 82, 13
- //
- GROUPBOX "",IDC_STATIC,7, 36, 324, 35 ,WS_GROUP
- CONTROL "Add time and date of alert to contact name",IDC_ADD_DATE_NAME,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP, 9, 42, 235, 13
- CONTROL "Use 24 hour time format instead of 12 hour",IDC_24_HOUR,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,9, 57, 235, 13
- CONTROL "Add as prefix",IDC_PREFIX,"Button",
- BS_AUTORADIOBUTTON, 248, 46, 82, 8
- CONTROL "Add as suffix",IDC_SUFFIX,"Button",
- BS_AUTORADIOBUTTON, 248, 58, 82, 8
- //
- RTEXT "Alert when:",IDC_STATIC, 120, 13, 63, 9
- COMBOBOX IDC_EVENT_TYPE,184, 11, 147, 63 ,CBS_DROPDOWN |
- WS_VSCROLL | WS_TABSTOP
- RTEXT "Alert type:",IDC_STATIC, 120, 27, 63, 9
- COMBOBOX IDC_ALERT_TYPE, 184, 26, 147, 67 ,CBS_DROPDOWN |
- WS_VSCROLL | WS_TABSTOP
- //
- //////////
- GROUPBOX "Test conditions",IDC_STATIC, 3, 77, 331, 58 ,WS_GROUP
- //
- GROUPBOX "Alert when string is present on web page",IDC_STATIC, 7, 85, 144, 44 ,WS_GROUP
- RTEXT "String:",IDC_STATIC, 10, 99, 34, 8
- EDITTEXT IDC_ALERT_STRING, 45, 97, 103, 12 ,ES_AUTOHSCROLL
- //
- GROUPBOX "Alert when specific area of web page changes",IDC_STATIC,155, 85, 176, 44 ,WS_GROUP
- RTEXT "Start:",IDC_STATIC, 163, 97, 36, 8
- EDITTEXT IDC_START2,200, 95, 126, 12,ES_AUTOHSCROLL
- RTEXT "End:",IDC_STATIC, 163, 112, 36, 8
- EDITTEXT IDC_END2,200, 110, 125, 12,ES_AUTOHSCROLL
- //
- /////////
- //
- GROUPBOX "Log to file",IDC_STATIC, 3, 137, 246, 37,WS_GROUP
- RTEXT "Log file:",IDC_STATIC, 8, 148, 39, 9
- EDITTEXT IDC_FILENAME, 48, 147, 174, 12,ES_AUTOHSCROLL
- PUSHBUTTON "...",IDC_BROWSE, 228, 148, 15, 11
- CONTROL "Append data to file",IDC_APPEND,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,8, 161, 132, 8
- CONTROL "Save as raw data",IDC_SAVE_AS_RAW,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,141, 161, 106, 8
-
- //
-
- DEFPUSHBUTTON "OK",IDC_OK2, 276, 137, 50, 14
- PUSHBUTTON "Cancel",IDC_ALERT_CANCEL, 276, 153, 50, 14
- PUSHBUTTON "Apply",IDC_ALERT_APPLY, 276, 169, 50, 14
- //
-
-
-
-
-END
-//////////////
-//popup options
-///////
-IDD_POPUP DIALOGEX 0, 0, 306, 183
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD
-EXSTYLE WS_EX_CONTROLPARENT
-FONT 8, "MS Shell Dlg", 0, 0, 0x1
-BEGIN
- ////
- GROUPBOX "Popup delay",IDC_STATIC,8,5,150,54,WS_GROUP
- //CONTROL "Delay",IDC_PD3,"Button",BS_AUTORADIOBUTTON,18,15,47,8
- LTEXT "Delay",IDC_STATIC,18,15,47,8
- EDITTEXT IDC_DELAY,65,15,31,9,ES_RIGHT | ES_AUTOHSCROLL |
- ES_NUMBER | NOT WS_BORDER,WS_EX_STATICEDGE
- LTEXT "seconds",IDC_STATIC,106,15,34,10
- //CONTROL "From popup plugin",IDC_PD1,"Button",BS_AUTORADIOBUTTON,
- // 18,30,110,12
- CONTROL "From popup plugin",IDC_PD1,"MButtonClass",WS_TABSTOP,
- 18,30,110,12
- //CONTROL "Permanent",IDC_PD2,"Button",BS_AUTORADIOBUTTON,18,45,
- // 110,12
- CONTROL "Permanent",IDC_PD2,"MButtonClass",WS_TABSTOP,18,45,
- 110,12
-
- ////
- CONTROL "Preview",IDC_PREVIEW,"MButtonClass",WS_TABSTOP,223,30,
- 45,11,0x18000000L
- ////
- GROUPBOX "Colors",IDC_STATIC,8,60,270,60,WS_GROUP
- CONTROL "Use custom colors",IDC_POP_USECUSTCOLORS,"Button",
- BS_AUTORADIOBUTTON,18,70,111,13
- CONTROL "Use Windows colors",IDC_POP_USEWINCOLORS,"Button",
- BS_AUTORADIOBUTTON,18,85,121,13
- CONTROL "Use same colors as data window", IDC_POP_USESAMECOLORS,"Button",
- BS_AUTORADIOBUTTON,18,100,161,13
-
- LTEXT "Background",IDC_STATIC,223,65,50,8,SS_CENTERIMAGE
- LTEXT "Text",IDC_STATIC,147,65,50,8,SS_CENTERIMAGE
- CONTROL "",IDC_POP_BGCOLOUR,"ColourPicker",WS_TABSTOP,223,75,35,11
- CONTROL "",IDC_POP_TEXTCOLOUR,"ColourPicker",WS_TABSTOP,147,75,35,11
- ////
-
- GROUPBOX "Left click action",IDC_STATIC,8,125,120,54,WS_GROUP
- CONTROL "Open data display window",IDC_LCLK_WINDOW,"Button",
- BS_AUTORADIOBUTTON,18,135,100,8
- CONTROL "Open web page",IDC_LCLK_WEB_PGE,"Button",
- BS_AUTORADIOBUTTON,18,150,100,8
- CONTROL "Dismiss popup",IDC_LCLK_DISMISS,"Button",
- BS_AUTORADIOBUTTON,18,165,100,8
-
-
- GROUPBOX "Right click action",IDC_STATIC,160,125,120,54,WS_GROUP
- CONTROL "Open data display window",IDC_RCLK_WINDOW,"Button",
- BS_AUTORADIOBUTTON,170,135,100,8
- CONTROL "Open web page",IDC_RCLK_WEB_PGE,"Button",
- BS_AUTORADIOBUTTON,170,150,100,8
- CONTROL "Dismiss popup",IDC_RCLK_DISMISS,"Button",
- BS_AUTORADIOBUTTON,170,165,100,8
-
- //CONTROL "Use popup plugins notify popups",IDC_PUALERT,"Button",
- // BS_AUTOCHECKBOX | WS_TABSTOP,16,185,130,8
-
-END
-
-
-
-
-
-/////////////////////////////
-
-///////////////
-//Menus
-///////////////
-
-IDR_CONTEXT MENU DISCARDABLE
-BEGIN
- POPUP "Log"
- BEGIN
- MENUITEM "&Copy", IDM_COPY
- MENUITEM "C&ut", IDM_CUT
- MENUITEM "&Delete", IDM_DELETE
- MENUITEM "&Paste", IDM_PASTE
- MENUITEM SEPARATOR
- MENUITEM "Co&py all", IDM_COPYALL
- MENUITEM "&Select all", IDM_SELECTALL
- MENUITEM "C&lear all", IDM_CLEAR_ALL
-
- END
-END
diff --git a/plugins/WebView/src/main.cpp b/plugins/WebView/src/main.cpp
deleted file mode 100644
index c94cb0b578..0000000000
--- a/plugins/WebView/src/main.cpp
+++ /dev/null
@@ -1,285 +0,0 @@
-/*
- * A plugin for Miranda IM which displays web page text in a window.
- * Copyright (C) 2005 Vincent Joyce.
- *
- * Miranda IM: the free icq client for MS Windows
- * Copyright (C) 2000-2 Richard Hughes, Roland Rabien & Tristan Van de Vreede
- *
- * 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 "stdafx.h"
-#include "webview.h"
-
-MWindowList hWindowList;
-HNETLIBUSER hNetlibUser;
-HANDLE hHookDisplayDataAlert, hHookAlertPopup, hHookAlertWPopup, hHookErrorPopup, hHookAlertOSD;
-
-CMPlugin g_plugin;
-
-static HMODULE hRichEd = nullptr;
-
-/////////////////////////////////////////////////////////////////////////////////////////
-
-PLUGININFOEX pluginInfoEx = {
- sizeof(PLUGININFOEX),
- __PLUGIN_NAME,
- PLUGIN_MAKE_VERSION(__MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM),
- __DESCRIPTION,
- __AUTHOR,
- __COPYRIGHT,
- __AUTHORWEB,
- UNICODE_AWARE,
- // {CD5427FB-5320-4f65-B4BF-86B7CF7B5087}
- {0xcd5427fb, 0x5320, 0x4f65, {0xb4, 0xbf, 0x86, 0xb7, 0xcf, 0x7b, 0x50, 0x87}}
-};
-
-CMPlugin::CMPlugin() :
- PLUGIN<CMPlugin>(MODULENAME, pluginInfoEx)
-{
- RegisterProtocol(PROTOTYPE_PROTOCOL);
- SetUniqueId("PreserveName");
-}
-
-/////////////////////////////////////////////////////////////////////////////////////////
-
-void InitServices()
-{
- CreateProtoServiceFunction(MODULENAME, PS_GETCAPS, GetCaps);
- CreateProtoServiceFunction(MODULENAME, PS_GETNAME, GetName);
- CreateProtoServiceFunction(MODULENAME, PS_LOADICON, BPLoadIcon);
- CreateProtoServiceFunction(MODULENAME, PS_SETSTATUS, SetStatus);
- CreateProtoServiceFunction(MODULENAME, PS_GETSTATUS, GetStatus);
- CreateProtoServiceFunction(MODULENAME, PS_BASICSEARCH, BasicSearch);
- CreateProtoServiceFunction(MODULENAME, PS_ADDTOLIST, AddToList);
- CreateProtoServiceFunction(MODULENAME, PSS_GETINFO, GetInfo);
-}
-
-/////////////////////////////////////////////////////////////////////////////////////////
-
-void ChangeContactStatus(int con_stat)
-{
- WORD status_code = 0;
- if (con_stat == 0)
- status_code = ID_STATUS_OFFLINE;
- if (con_stat == 1)
- status_code = ID_STATUS_ONLINE;
- if (con_stat == 2)
- status_code = ID_STATUS_AWAY;
- if (con_stat == 3)
- status_code = ID_STATUS_NA;
-
- for (auto &hContact : Contacts(MODULENAME))
- g_plugin.setWord(hContact, "Status", status_code);
-}
-
-/////////////////////////////////////////////////////////////////////////////////////////
-
-extern "C" __declspec(dllexport) const MUUID MirandaInterfaces[] = { MIID_PROTOCOL, MIID_LAST };
-
-/////////////////////////////////////////////////////////////////////////////////////////
-
-int CMPlugin::Load()
-{
- HookEvent(ME_CLIST_DOUBLECLICKED, Doubleclick);
-
- hMenu = LoadMenu(g_plugin.getInst(), MAKEINTRESOURCE(IDR_CONTEXT));
- hRichEd = LoadLibrary(L"Msftedit.dll");
-
- /*TIMERS*/
- if ((g_plugin.getDword(REFRESH_KEY, TIME) != 0)) {
- timerId = SetTimer(nullptr, 0, ((g_plugin.getDword(REFRESH_KEY, TIME)) * MINUTE), timerfunc);
- g_plugin.setDword(COUNTDOWN_KEY, 0);
- Countdown = SetTimer(nullptr, 0, MINUTE, Countdownfunc);
- }
-
- InitialiseGlobals();
-
- // register netlib handle
- char tempNdesc[50];
- mir_snprintf(tempNdesc, "%s connection settings", MODULENAME);
-
- NETLIBUSER nlu = {};
- nlu.flags = NUF_OUTGOING | NUF_HTTPCONNS;
- nlu.szSettingsModule = MODULENAME;
- nlu.szDescriptiveName.a = tempNdesc;
- hNetlibUser = Netlib_RegisterUser(&nlu);
-
- //protocol services
- InitServices();
-
- //add sound event to options
- g_plugin.addSound("webviewalert", _A2W(MODULENAME), LPGENW("Alert event"));
-
- //value is 1 if menu is disabled
- g_plugin.setByte(MENU_IS_DISABLED_KEY, 1);
-
- CMenuItem mi(&g_plugin);
- mi.flags = CMIF_UNICODE;
- if ( g_plugin.getByte(MENU_OFF, 0)) {
- //value is 0 if menu is enabled
- g_plugin.setByte(MENU_IS_DISABLED_KEY, 0);
-
- mi.root = g_plugin.addRootMenu(MO_MAIN, _A2W(MODULENAME), 20200001);
- Menu_ConfigureItem(mi.root, MCI_OPT_UID, "403BE07B-7954-4F3E-B318-4301571776B8");
-
- /*DISABLE WEBVIEW*/
- SET_UID(mi, 0xdedeb697, 0xfc10, 0x4622, 0x8b, 0x97, 0x74, 0x39, 0x32, 0x68, 0xa7, 0x7b);
- CreateServiceFunction("DisableWebview", AutoUpdateMCmd);
- mi.hIcolibItem = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_SITE));
- if (g_plugin.getByte(DISABLE_AUTOUPDATE_KEY, 0))
- mi.name.w = LPGENW("Auto update disabled");
- else
- mi.name.w = LPGENW("Auto update enabled");
- mi.pszService = "DisableWebview";
- hMenuItem1 = Menu_AddMainMenuItem(&mi);
-
- // Update all webview contacts
- SET_UID(mi, 0xf324ede, 0xfdf, 0x498a, 0x8f, 0x49, 0x6d, 0x2a, 0x9f, 0xda, 0x58, 0x6);
- CreateServiceFunction("UpdateAll", UpdateAllMenuCommand);
- mi.position = 500090002;
- mi.hIcolibItem = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_UPDATEALL));
- mi.name.w = LPGENW("Update all Webview sites");
- mi.pszService = "UpdateAll";
- Menu_AddMainMenuItem(&mi);
-
- // Mark All Webview Sites As Read
- SET_UID(mi, 0x1fa5fa21, 0x2ee1, 0x4372, 0xae, 0x3e, 0x3b, 0x96, 0xac, 0xd, 0xe8, 0x49);
- CreateServiceFunction("MarkAllSitesRead", MarkAllReadMenuCommand);
- mi.position = 500090099;
- mi.hIcolibItem = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_MARKALLREAD));
- mi.name.w = LPGENW("Mark all Webview sites as read");
- mi.pszService = "MarkAllSitesRead";
- Menu_AddMainMenuItem(&mi);
-
- // open cache directory
- SET_UID(mi, 0xfed046a8, 0xaae5, 0x4cbe, 0xa8, 0xc, 0x3c, 0x50, 0x3e, 0x3e, 0x9b, 0x15);
- CreateServiceFunction("OpenCacheFolder", OpenCacheDir);
- mi.position = 500090099;
- mi.hIcolibItem = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_FOLDER));
- mi.name.w = LPGENW("Open cache folder");
- mi.pszService = "OpenCacheFolder";
- Menu_AddMainMenuItem(&mi);
-
- // Countdown test
- SET_UID(mi, 0xbb1a94a9, 0xca63, 0x4966, 0x98, 0x48, 0x8b, 0x3f, 0x9d, 0xac, 0x6a, 0x10);
- CreateServiceFunction("Countdown", CountdownMenuCommand);
- mi.flags |= CMIF_KEEPUNTRANSLATED;
- wchar_t countername[100];
- mir_snwprintf(countername, TranslateT("%d minutes to update"), g_plugin.getDword(COUNTDOWN_KEY, 0));
- mi.position = 600090099;
- mi.hIcolibItem = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_UPDATEALL));
- mi.name.w = countername;
- mi.pszService = "Countdown";
- hMenuItemCountdown = Menu_AddMainMenuItem(&mi);
- }
-
- // contact menu
- mi.flags = CMIF_UNICODE;
-
- SET_UID(mi, 0xadc6a9a4, 0xdf7, 0x4f63, 0x89, 0x11, 0x8e, 0x42, 0x1d, 0xd6, 0x29, 0x31);
- CreateServiceFunction("Open web page", WebsiteMenuCommand);
- mi.position = 100;
- mi.hIcolibItem = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_URL));
- mi.pszService = "Open web page";
- mi.name.w = LPGENW("Open web page");
- Menu_AddContactMenuItem(&mi, MODULENAME);
-
- SET_UID(mi, 0x9d803e61, 0xc929, 0x4c6e, 0x9e, 0x7, 0x93, 0x0, 0xab, 0x14, 0x13, 0x50);
- CreateServiceFunction("OpenClose Window", DataWndMenuCommand);
- mi.pszService = "OpenClose Window";
- mi.hIcolibItem = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_SHOW_HIDE));
- mi.name.w = LPGENW("Open/Close window");
- Menu_AddContactMenuItem(&mi, MODULENAME);
-
- SET_UID(mi, 0x3840cc71, 0xcc85, 0x448d, 0xb5, 0xc8, 0x1a, 0x7d, 0xfe, 0xf0, 0x8, 0x85);
- mi.position = 2222220;
- mi.pszService = "UpdateData";
- mi.hIcolibItem = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_UPDATE));
- mi.name.w = LPGENW("Update data");
- Menu_AddContactMenuItem(&mi, MODULENAME);
-
- SET_UID(mi, 0xd1ab586c, 0x2c71, 0x429c, 0xb1, 0x79, 0x7b, 0x3a, 0x1d, 0x4a, 0xc1, 0x7d);
- CreateServiceFunction("ContactOptions", CntOptionsMenuCommand);
- mi.pszService = "ContactOptions";
- mi.hIcolibItem = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_OPTIONS));
- mi.name.w = LPGENW("Contact options");
- Menu_AddContactMenuItem(&mi, MODULENAME);
-
- SET_UID(mi, 0xe4cda597, 0x9def, 0x4f54, 0x8a, 0xc6, 0x69, 0x3b, 0x5a, 0x7d, 0x77, 0xb6);
- CreateServiceFunction("ContactAlertOpts", CntAlertMenuCommand);
- mi.pszService = "ContactAlertOpts";
- mi.hIcolibItem = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_ALERT));
- mi.name.w = LPGENW("Contact alert options");
- Menu_AddContactMenuItem(&mi, MODULENAME);
-
- SET_UID(mi, 0x63fdeed8, 0xf880, 0x423f, 0x95, 0xae, 0x20, 0x8c, 0x86, 0x3c, 0x5, 0xd8);
- CreateServiceFunction("PingWebsite", PingWebsiteMenuCommand);
- mi.pszService = "PingWebsite";
- mi.hIcolibItem = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_PING));
- mi.name.w = LPGENW("Ping web site");
- Menu_AddContactMenuItem(&mi, MODULENAME);
-
- SET_UID(mi, 0x28fd36de, 0x6ce1, 0x43d0, 0xa1, 0x6e, 0x98, 0x71, 0x53, 0xe8, 0xc9, 0xf4);
- CreateServiceFunction("StopDataProcessing", StpPrcssMenuCommand);
- mi.pszService = "StopDataProcessing";
- mi.hIcolibItem = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_STOP));
- mi.name.w = LPGENW("Stop data processing");
- Menu_AddContactMenuItem(&mi, MODULENAME);
-
- hWindowList = WindowList_Create();
-
- HookEvent(ME_SYSTEM_MODULESLOADED, ModulesLoaded);
- HookEvent(ME_DB_CONTACT_SETTINGCHANGED, DBSettingChanged);
- HookEvent(ME_DB_CONTACT_DELETED, SiteDeleted);
- HookEvent(ME_OPT_INITIALISE, OptInitialise);
-
- g_plugin.setByte(HAS_CRASHED_KEY, 1);
- return 0;
-}
-
-/////////////////////////////////////////////////////////////////////////////////////////
-
-int CMPlugin::Unload()
-{
- ChangeContactStatus(0);
-
- KillTimer(nullptr, timerId);
- KillTimer(nullptr, Countdown);
-
- g_plugin.setByte(HAS_CRASHED_KEY, 0);
- SavewinSettings();
- if (hRichEd)
- FreeLibrary(hRichEd);
-
- if (hNetlibUser) {
- Netlib_CloseHandle(hNetlibUser);
- hNetlibUser = nullptr;
- }
-
- if (hHookDisplayDataAlert)
- DestroyHookableEvent(hHookDisplayDataAlert);
- if (hHookAlertPopup)
- DestroyHookableEvent(hHookAlertPopup);
- if (hHookAlertWPopup)
- DestroyHookableEvent(hHookAlertWPopup);
-
- if (h_font != nullptr)
- DeleteObject(h_font);
- if (hMenu)
- DestroyMenu(hMenu);
- WindowList_Destroy(hWindowList);
- return 0;
-}
diff --git a/plugins/WebView/src/resource.h b/plugins/WebView/src/resource.h
deleted file mode 100644
index 75379a22e5..0000000000
--- a/plugins/WebView/src/resource.h
+++ /dev/null
@@ -1,139 +0,0 @@
-#define UNI 1
-
-#define IDC_STATIC -1
-
-#define IDI_SITE 101
-#define IDI_STICK 102
-#define IDI_UNSTICK 103
-#define IDI_URL 104
-#define IDI_OPTIONS 105
-#define IDI_UPDATE 106
-#define IDI_SHOW_HIDE 107
-#define IDI_FIND 108
-#define IDI_ALERT 110
-#define IDI_FOLDER 111
-#define IDI_UPDATEALL 112
-#define IDI_MARKALLREAD 113
-#define IDI_PING 114
-#define IDI_STOP 115
-
-
-#define IDC_UPDATE_ONSTART 300
-#define IDC_DBLE_WEB 301
-#define IDC_DBLE_WIN 302
-#define IDC_UPDATE_ON_OPEN 303
-#define IDC_UPDATE_ONALERT 304
-
-#define IDD_OPT 443
-#define IDC_DISABLEMENU 446
-#define IDC_OPEN_WEBPAGE 447
-#define IDC_TIME 450
-
-#define IDC_BGCOLOR 451
-#define IDC_TXTCOLOR 452
-#define IDC_RESTART 453
-#define IDC_CLEAN 457
-#define IDC_SUPPRESS 458
-#define IDC_SPIN1 461
-#define IDC_HIDE_STATUS_ICON 464
-#define IDC_RWSPACE 465
-#define IDC_RWSPC_TEXT 466
-#define IDC_TYPEFACE 467
-#define IDC_FONT_BOLD 468
-#define IDC_FONT_ITALIC 469
-#define IDC_FONT_UNDERLINE 470
-#define IDC_FONTSIZE 471
-#define IDC_U_SE_STRINGS 475
-#define IDC_U_ALLSITE 476
-#define IDC_ERROR_POPUP 477
-#define IDC_START_DELAY 480
-#define IDC_SPIN2 481
-#define IDC_STARTDELAYTXT 482
-#define IDC_STDELAYSECTXT 483
-#define IDC_SAVE_INDIVID_POS 484
-#define IDC_ADV_GRP 485
-#define IDC_NO_PROTECT 486
-#define IDC_NOT_RECOMND_TXT 487
-#define IDC_SCRIPT 488
-#define IDC_DATAPOPUP 489
-
-#define IDR_CONTEXT 500
-#define IDM_CUT 501
-#define IDM_PASTE 502
-#define IDM_DELETE 503
-#define IDM_CLEAR_ALL 504
-#define IDM_COPY 505
-#define IDM_COPYALL 506
-#define IDM_SELECTALL 507
-
-#define IDC_SITE_NAME 551
-#define IDC_ERR_CHK 552
-#define IDC_APPEND 554
-#define IDC_FILENAME 555
-#define IDC_BROWSE 556
-#define IDC_SAVE_AS_RAW 557
-//#define IDC_AGENT 557//temp
-
-#define IDD_DISPLAY_DATA 600
-#define IDC_OPEN_URL 601
-#define IDC_DATA 602
-#define IDC_UPDATE_BUTTON 603
-#define IDC_STICK_BUTTON 604
-#define IDC_FIND_BUTTON 605
-#define IDC_STATUSBAR 606
-#define IDC_OPTIONS_BUTTON 607
-#define IDC_ALERT_BUTTON 608
-//#define IDC_HIDDEN_URL 609
-#define IDC_STOP 609
-
-#define IDC_ERRORMSG 620
-
-#define IDD_CONTACT_OPT 700
-#define IDC_END 701
-#define IDC_START 702
-#define IDC_URL 703
-#define IDC_OPT_CANCEL 704
-#define IDC_OPT_APPLY 705
-#define IDC_CPY_STRINGS 706
-
-
-#define IDD_FIND 750
-#define IDC_FINDWHAT 751
-#define IDC_OK 752
-#define IDC_CANCEL 753
-#define IDC_SEARCH_COMPLETE 754
-
-#define IDD_ALRT_OPT 801
-#define IDC_ENABLE_ALERTS 802
-#define IDC_OK2 803
-#define IDC_ALERT_STRING 804
-#define IDC_ALERT_TYPE 807
-#define IDC_EVENT_TYPE 808
-#define IDC_ALERT_CANCEL 809
-#define IDC_ALERT_APPLY 810
-#define IDC_START2 811
-#define IDC_END2 812
-#define IDC_ADD_DATE_NAME 813
-#define IDC_DELAY 814
-#define IDC_PREFIX 815
-#define IDC_SUFFIX 816
-#define IDC_24_HOUR 817
-#define IDC_ALWAYS_LOG 818
-
-#define IDD_POPUP 850
-#define IDC_POP_BGCOLOUR 851
-#define IDC_POP_TEXTCOLOUR 852
-#define IDC_PD1 853
-#define IDC_PD2 854
-//#define IDC_PD3 855
-#define IDC_PREVIEW 856
-#define IDC_POP_USEWINCOLORS 857
-#define IDC_POP_USESAMECOLORS 858
-#define IDC_POP_USECUSTCOLORS 859
-#define IDC_LCLK_WINDOW 860
-#define IDC_LCLK_WEB_PGE 861
-#define IDC_LCLK_DISMISS 862
-#define IDC_RCLK_WINDOW 863
-#define IDC_RCLK_WEB_PGE 864
-#define IDC_RCLK_DISMISS 865
-//#define IDC_PUALERT 866
diff --git a/plugins/WebView/src/stdafx.cxx b/plugins/WebView/src/stdafx.cxx
deleted file mode 100644
index d33e44d684..0000000000
--- a/plugins/WebView/src/stdafx.cxx
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
-Copyright (C) 2012-19 Miranda NG team (https://miranda-ng.org)
-
-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 version 2
-of the License.
-
-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, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "stdafx.h" \ No newline at end of file
diff --git a/plugins/WebView/src/stdafx.h b/plugins/WebView/src/stdafx.h
deleted file mode 100644
index 3ce8c77b06..0000000000
--- a/plugins/WebView/src/stdafx.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#pragma once
-
-#include <windows.h>
-#include <shlwapi.h>
-#include <Richedit.h>
-#include <Commctrl.h>
-
-#include <ctype.h>
-#include <io.h>
-#include <locale.h>
-#include <process.h>
-#include <stdio.h>
-#include <string.h>
-#include <time.h>
-#include <wchar.h>
-
-#include <newpluginapi.h>
-#include <m_system.h>
-#include <m_clist.h>
-#include <m_clist.h>
-#include <m_database.h>
-#include <m_protocols.h>
-#include <m_protosvc.h>
-#include <m_button.h>
-#include <m_utils.h>
-#include <m_skin.h>
-#include <m_genmenu.h>
-#include <m_icolib.h>
-#include <m_options.h>
-#include <m_popup.h>
-#include <m_netlib.h>
-#include <m_langpack.h>
-#include <m_findadd.h>
-
-#include "resource.h"
-#include "version.h"
diff --git a/plugins/WebView/src/version.h b/plugins/WebView/src/version.h
deleted file mode 100644
index c2030de835..0000000000
--- a/plugins/WebView/src/version.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#define __MAJOR_VERSION 0
-#define __MINOR_VERSION 1
-#define __RELEASE_NUM 3
-#define __BUILD_NUM 2
-
-#include <stdver.h>
-
-#define __PLUGIN_NAME "Webview"
-#define __FILENAME "Webview.dll"
-#define __DESCRIPTION "Adds web pages as contacts to your contact list and can display text and/or issue change alerts from those pages in a window."
-#define __AUTHOR "Vincent Joyce"
-#define __AUTHORWEB "https://miranda-ng.org/p/WebView/"
-#define __COPYRIGHT "© 2011 Vincent Joyce"
diff --git a/plugins/WebView/src/webview.cpp b/plugins/WebView/src/webview.cpp
deleted file mode 100644
index 2a9f371377..0000000000
--- a/plugins/WebView/src/webview.cpp
+++ /dev/null
@@ -1,481 +0,0 @@
-/*
-* A plugin for Miranda IM which displays web page text in a window Copyright
-* (C) 2005 Vincent Joyce.
-*
-* Miranda IM: the free icq client for MS Windows Copyright (C) 2000-2
-* Richard Hughes, Roland Rabien & Tristan Van de Vreede
-*
-* 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 "stdafx.h"
-#include "webview.h"
-
-char* WndClass = "WEBWnd";
-WNDCLASSEX wincl;
-MSG messages;
-DWORD winheight;
-int StartUpDelay = 0;
-
-int Xposition, Yposition;
-int WindowHeight, WindowWidth;
-COLORREF BackgoundClr, TextClr;
-
-UINT_PTR timerId;
-UINT_PTR Countdown;
-LOGFONT g_lf;
-HFONT h_font;
-HMENU hMenu;
-int bpStatus;
-HGENMENU hMenuItem1;
-HGENMENU hMenuItemCountdown;
-
-/*****************************************************************************/
-void ChangeMenuItem1()
-{
- // Enable or Disable auto updates
- LPCTSTR ptszName;
- if (!g_plugin.getByte(DISABLE_AUTOUPDATE_KEY, 0))
- ptszName = LPGENW("Auto update enabled");
- else
- ptszName = LPGENW("Auto update disabled");
-
- Menu_ModifyItem(hMenuItem1, ptszName, LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_SITE)));
-}
-
-/*****************************************************************************/
-void ChangeMenuItemCountdown()
-{
- // countdown
- HICON hIcon = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_UPDATEALL));
-
- wchar_t countername[100];
- mir_snwprintf(countername, TranslateT("%d minutes to update"), g_plugin.getDword(COUNTDOWN_KEY, 0));
-
- Menu_ModifyItem(hMenuItemCountdown, countername, hIcon, CMIF_KEEPUNTRANSLATED);
-}
-
-/*****************************************************************************/
-static int CALLBACK EnumFontsProc(ENUMLOGFONTEX *lpelfe, NEWTEXTMETRICEX*, int, LPARAM lParam)
-{
- if (!IsWindow((HWND)lParam))
- return FALSE;
- if (SendMessage((HWND)lParam, CB_FINDSTRINGEXACT, -1, (LPARAM)lpelfe->elfLogFont.lfFaceName) == CB_ERR)
- SendMessage((HWND)lParam, CB_ADDSTRING, 0, (LPARAM)lpelfe->elfLogFont.lfFaceName);
- return TRUE;
-}
-
-void FillFontListThread(void *param)
-{
- HDC hdc = GetDC((HWND)param);
-
- LOGFONT lf = { 0 };
- g_lf.lfCharSet = DEFAULT_CHARSET;
- g_lf.lfFaceName[0] = 0;
- g_lf.lfPitchAndFamily = 0;
- EnumFontFamiliesEx(hdc, &lf, (FONTENUMPROC)EnumFontsProc, (LPARAM)GetDlgItem((HWND)param, IDC_TYPEFACE), 0);
- ReleaseDC((HWND)param, hdc);
-}
-
-/*****************************************************************************/
-void TxtclrLoop()
-{
- for (auto &hContact : Contacts(MODULENAME)) {
- HWND hwndDlg = WindowList_Find(hWindowList, hContact);
- SetDlgItemText(hwndDlg, IDC_DATA, L"");
- InvalidateRect(hwndDlg, nullptr, 1);
- }
-}
-
-/*****************************************************************************/
-void BGclrLoop()
-{
- for (auto &hContact : Contacts(MODULENAME)) {
- HWND hwndDlg = (WindowList_Find(hWindowList, hContact));
- SetDlgItemText(hwndDlg, IDC_DATA, L"");
- SendDlgItemMessage(hwndDlg, IDC_DATA, EM_SETBKGNDCOLOR, 0, BackgoundClr);
- InvalidateRect(hwndDlg, nullptr, 1);
- }
-}
-
-/*****************************************************************************/
-void StartUpdate(void*)
-{
- StartUpDelay = 1;
- Sleep(((g_plugin.getDword(START_DELAY_KEY, 0)) * SECOND));
-
- for (auto &hContact : Contacts(MODULENAME))
- GetData((void*)hContact);
-
- StartUpDelay = 0;
-}
-
-/*****************************************************************************/
-void ContactLoop(void*)
-{
- if (StartUpDelay == 0) {
- for (auto &hContact : Contacts(MODULENAME)) {
- GetData((void*)hContact);
- Sleep(10); // avoid 100% CPU
- }
- }
-
- WAlertPopup(NULL, TranslateT("All Webview sites have been updated."));
-}
-
-/*****************************************************************************/
-INT_PTR MarkAllReadMenuCommand(WPARAM, LPARAM)
-{
- ChangeContactStatus(1);
- return 0;
-}
-
-/*****************************************************************************/
-void InitialiseGlobals(void)
-{
- Xposition = g_plugin.getDword(Xpos_WIN_KEY, 0);
- Yposition = g_plugin.getDword(Ypos_WIN_KEY, 0);
-
- if (Yposition == -32000)
- Yposition = 100;
-
- if (Xposition == -32000)
- Xposition = 100;
-
- BackgoundClr = g_plugin.getDword(BG_COLOR_KEY, Def_color_bg);
- TextClr = g_plugin.getDword(TXT_COLOR_KEY, Def_color_txt);
-
- WindowHeight = g_plugin.getDword(WIN_HEIGHT_KEY, Def_win_height);
- WindowWidth = g_plugin.getDword(WIN_WIDTH_KEY, Def_win_width);
-}
-
-/*****************************************************************************/
-int Doubleclick(WPARAM wParam, LPARAM)
-{
- MCONTACT hContact = wParam;
- char *szProto = GetContactProto(hContact);
- if (mir_strcmp(MODULENAME, szProto))
- return 0;
-
- int action = g_plugin.getByte(hContact, DBLE_WIN_KEY, 1);
- if (action == 0) {
- ptrW url(g_plugin.getWStringA(hContact, "URL"));
- Utils_OpenUrlW(url);
-
- g_plugin.setWord(hContact, "Status", ID_STATUS_ONLINE);
- }
- else if (action == 1) {
- HWND hwndDlg = WindowList_Find(hWindowList, hContact);
- if (hwndDlg) {
- SetForegroundWindow(hwndDlg);
- SetFocus(hwndDlg);
- }
- else {
- hwndDlg = CreateDialogParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_DISPLAY_DATA), nullptr, DlgProcDisplayData, (LPARAM)hContact);
- HWND hTopmost = g_plugin.getByte(hContact, ON_TOP_KEY, 0) ? HWND_TOPMOST : HWND_NOTOPMOST;
- SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM)((HICON)LoadImage(g_plugin.getInst(), MAKEINTRESOURCE(IDI_STICK), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0)));
-
- if (g_plugin.getByte(SAVE_INDIVID_POS_KEY, 0))
- SetWindowPos(hwndDlg, hTopmost,
- g_plugin.getDword(hContact, "WVx", 100), // Xposition,
- g_plugin.getDword(hContact, "WVy", 100), // Yposition,
- g_plugin.getDword(hContact, "WVwidth", 412), // WindowWidth,
- g_plugin.getDword(hContact, "WVheight", 350), 0); // WindowHeight,
- else
- SetWindowPos(hwndDlg, HWND_TOPMOST, Xposition, Yposition, WindowWidth, WindowHeight, 0);
- }
-
- ShowWindow(hwndDlg, SW_SHOW);
- SetActiveWindow(hwndDlg);
-
- if (g_plugin.getByte(UPDATE_ON_OPEN_KEY, 0)) {
- if (g_plugin.getByte(hContact, ENABLE_ALERTS_KEY, 0))
- mir_forkthread(ReadFromFile, (void*)hContact);
- else
- mir_forkthread(GetData, (void*)hContact);
- g_plugin.setWord(hContact, "Status", ID_STATUS_ONLINE);
- }
- }
-
- return 1;
-}
-
-/*****************************************************************************/
-int SendToRichEdit(HWND hWindow, char *truncated, COLORREF rgbText, COLORREF rgbBack)
-{
- DBVARIANT dbv;
- DWORD bold = 0;
- DWORD italic = 0;
- DWORD underline = 0;
-
- SetDlgItemText(hWindow, IDC_DATA, L"");
-
- CHARFORMAT2 cfFM;
- memset(&cfFM, 0, sizeof(cfFM));
- cfFM.cbSize = sizeof(CHARFORMAT2);
- cfFM.dwMask = CFM_COLOR | CFM_CHARSET | CFM_FACE | ENM_LINK | ENM_MOUSEEVENTS | CFM_BOLD | CFM_ITALIC | CFM_UNDERLINE | CFM_SIZE;
-
- if (g_plugin.getByte(FONT_BOLD_KEY, 0))
- bold = CFE_BOLD;
-
- if (g_plugin.getByte(FONT_ITALIC_KEY, 0))
- italic = CFE_ITALIC;
-
- if (g_plugin.getByte(FONT_UNDERLINE_KEY, 0))
- underline = CFE_UNDERLINE;
-
- cfFM.dwEffects = bold | italic | underline;
-
- if (!g_plugin.getWString(FONT_FACE_KEY, &dbv)) {
- mir_wstrcpy(cfFM.szFaceName, dbv.pwszVal);
- db_free(&dbv);
- }
- else mir_wstrcpy(cfFM.szFaceName, Def_font_face);
-
- HDC hDC = GetDC(hWindow);
- cfFM.yHeight = (BYTE)MulDiv(abs(g_lf.lfHeight), 120, GetDeviceCaps(GetDC(hWindow), LOGPIXELSY)) * (g_plugin.getByte(FONT_SIZE_KEY, 14));
- ReleaseDC(hWindow, hDC);
-
- cfFM.bCharSet = g_plugin.getByte(FONT_SCRIPT_KEY, 0);
- cfFM.bPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE;
- cfFM.crTextColor = rgbText;
- cfFM.crBackColor = rgbBack;
- SendDlgItemMessage(hWindow, IDC_DATA, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)& cfFM);
-
- SendDlgItemMessage(hWindow, IDC_DATA, EM_SETSEL, 0, -1);
- SendDlgItemMessageA(hWindow, IDC_DATA, EM_REPLACESEL, FALSE, (LPARAM)truncated);
- SendDlgItemMessage(hWindow, IDC_DATA, EM_SETCHARFORMAT, SCF_ALL, (LPARAM)&cfFM);
- return 1;
-}
-
-/*****************************************************************************/
-void CALLBACK timerfunc(HWND, UINT, UINT_PTR, DWORD)
-{
- g_plugin.setByte(HAS_CRASHED_KEY, 0);
-
- if (!(g_plugin.getByte(OFFLINE_STATUS, 1)))
- if (!(g_plugin.getByte(DISABLE_AUTOUPDATE_KEY, 0)))
- mir_forkthread(ContactLoop);
-
- g_plugin.setDword(COUNTDOWN_KEY, 0);
-}
-
-/*****************************************************************************/
-void CALLBACK Countdownfunc(HWND, UINT, UINT_PTR, DWORD)
-{
- DWORD timetemp = g_plugin.getDword(COUNTDOWN_KEY, 100);
- if (timetemp <= 0) {
- timetemp = g_plugin.getDword(REFRESH_KEY, TIME);
- g_plugin.setDword(COUNTDOWN_KEY, timetemp);
- }
-
- g_plugin.setDword(COUNTDOWN_KEY, timetemp - 1);
-
- ChangeMenuItemCountdown();
-}
-
-/*****************************************************************************/
-
-int OptInitialise(WPARAM wParam, LPARAM)
-{
- OPTIONSDIALOGPAGE odp = {};
- odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT);
- odp.szGroup.a = LPGEN("Network");
- odp.szTitle.a = MODULENAME;
- odp.pfnDlgProc = DlgProcOpt;
- odp.flags = ODPF_BOLDGROUPS;
- g_plugin.addOptions(wParam, &odp);
-
- // if popup service exists
- if ((ServiceExists(MS_POPUP_ADDPOPUPW))) {
- odp.pszTemplate = MAKEINTRESOURCEA(IDD_POPUP);
- odp.szGroup.a = LPGEN("Popups");
- odp.pfnDlgProc = DlgPopUpOpts;
- g_plugin.addOptions(wParam, &odp);
- }
- return 0;
-}
-
-/*****************************************************************************/
-void FontSettings(void)
-{
- g_lf.lfHeight = 16;
- g_lf.lfWidth = 0;
- g_lf.lfEscapement = 0;
- g_lf.lfOrientation = 0;
- g_lf.lfWeight = FW_NORMAL;
- g_lf.lfItalic = FALSE;
- g_lf.lfUnderline = FALSE;
- g_lf.lfStrikeOut = 0;
- g_lf.lfCharSet = ANSI_CHARSET;
- g_lf.lfOutPrecision = OUT_DEFAULT_PRECIS;
- g_lf.lfClipPrecision = CLIP_DEFAULT_PRECIS;
- g_lf.lfQuality = DEFAULT_QUALITY;
- g_lf.lfPitchAndFamily = FIXED_PITCH | FF_MODERN;
- mir_wstrcpy(g_lf.lfFaceName, Def_font_face);
-}
-
-/*****************************************************************************/
-int ModulesLoaded(WPARAM, LPARAM)
-{
- hHookDisplayDataAlert = CreateHookableEvent(ME_DISPLAYDATA_ALERT);
- HookEvent(ME_DISPLAYDATA_ALERT, DataWndAlertCommand);
-
- hHookAlertPopup = CreateHookableEvent(ME_POPUP_ALERT);
- HookEvent(ME_POPUP_ALERT, PopupAlert);
-
- hHookErrorPopup = CreateHookableEvent(ME_POPUP_ERROR);
- HookEvent(ME_POPUP_ERROR, ErrorMsgs);
-
- hHookAlertOSD = CreateHookableEvent(ME_OSD_ALERT);
- HookEvent(ME_OSD_ALERT, OSDAlert);
-
- FontSettings();
- h_font = CreateFontIndirect(&g_lf);
-
- // get data on startup
- if (g_plugin.getByte(UPDATE_ONSTART_KEY, 0))
- mir_forkthread(StartUpdate);
-
- return 0;
-}
-
-/*****************************************************************************/
-INT_PTR DataWndMenuCommand(WPARAM wParam, LPARAM)
-{
- MCONTACT hContact = wParam;
- HWND hwndDlg = WindowList_Find(hWindowList, hContact);
- if (hwndDlg != nullptr) {
- DestroyWindow(hwndDlg);
- return 0;
- }
-
- HWND hTopmost = g_plugin.getByte(hContact, ON_TOP_KEY, 0) ? HWND_TOPMOST : HWND_NOTOPMOST;
- hwndDlg = CreateDialogParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_DISPLAY_DATA), nullptr, DlgProcDisplayData, (LPARAM)hContact);
- SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM)LoadImage(g_plugin.getInst(), MAKEINTRESOURCE(IDI_STICK), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0));
- if (g_plugin.getByte(SAVE_INDIVID_POS_KEY, 0))
- SetWindowPos(hwndDlg, hTopmost,
- g_plugin.getDword(hContact, "WVx", 100), // Xposition,
- g_plugin.getDword(hContact, "WVy", 100), // Yposition,
- g_plugin.getDword(hContact, "WVwidth", 100), // WindowWidth,
- g_plugin.getDword(hContact, "WVheight", 100), 0); // WindowHeight,
- else
- SetWindowPos(hwndDlg, HWND_TOPMOST, Xposition, Yposition, WindowWidth, WindowHeight, 0);
-
- ShowWindow(hwndDlg, SW_SHOW);
- SetActiveWindow(hwndDlg);
-
- if (g_plugin.getByte(UPDATE_ON_OPEN_KEY, 0)) {
- if (g_plugin.getByte(hContact, ENABLE_ALERTS_KEY, 0))
- mir_forkthread(ReadFromFile, (void*)hContact);
- else
- mir_forkthread(GetData, (void*)hContact);
- g_plugin.setWord(hContact, "Status", ID_STATUS_ONLINE);
- }
-
- return 0;
-}
-
-/*****************************************************************************/
-INT_PTR UpdateAllMenuCommand(WPARAM, LPARAM)
-{
- mir_forkthread(ContactLoop);
- return 0;
-}
-
-/*****************************************************************************/
-INT_PTR AutoUpdateMCmd(WPARAM, LPARAM)
-{
- if (g_plugin.getByte(DISABLE_AUTOUPDATE_KEY, 0))
- g_plugin.setByte(DISABLE_AUTOUPDATE_KEY, 0);
- else
- g_plugin.setByte(DISABLE_AUTOUPDATE_KEY, 1);
-
- ChangeMenuItem1();
- return 0;
-}
-
-/*****************************************************************************/
-INT_PTR AddContactMenuCommand(WPARAM, LPARAM)
-{
- db_set_s(0, "FindAdd", "LastSearched", MODULENAME);
- CallService(MS_FINDADD_FINDADD, 0, 0);
- return 0;
-}
-
-/*****************************************************************************/
-int OnTopMenuCommand(WPARAM, LPARAM, MCONTACT singlecontact)
-{
- int ontop = 0;
- int done = 0;
-
- if (((g_plugin.getByte(singlecontact, ON_TOP_KEY))) && done == 0) {
- g_plugin.setByte(singlecontact, ON_TOP_KEY, 0);
- ontop = 0;
- done = 1;
- }
- if ((!(g_plugin.getByte(singlecontact, ON_TOP_KEY, 0))) && done == 0) {
- g_plugin.setByte(singlecontact, ON_TOP_KEY, 1);
- ontop = 1;
- done = 1;
- }
- return 0;
-}
-
-/*****************************************************************************/
-INT_PTR WebsiteMenuCommand(WPARAM wParam, LPARAM)
-{
- MCONTACT hContact = wParam;
- ptrW url(g_plugin.getWStringA(hContact, "URL"));
- if (url)
- Utils_OpenUrlW(url);
-
- g_plugin.setWord(hContact, "Status", ID_STATUS_ONLINE);
- return 0;
-}
-
-/*****************************************************************************/
-int UpdateMenuCommand(WPARAM, LPARAM, MCONTACT singlecontact)
-{
- mir_forkthread(GetData, (void*)singlecontact);
- return 0;
-}
-
-/*****************************************************************************/
-int ContactMenuItemUpdateData(WPARAM wParam, LPARAM lParam)
-{
- UpdateMenuCommand(wParam, lParam, wParam);
- return 0;
-}
-
-/*****************************************************************************/
-INT_PTR CntOptionsMenuCommand(WPARAM wParam, LPARAM)
-{
- DialogBoxParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_CONTACT_OPT), nullptr, DlgProcContactOpt, wParam);
- return 0;
-}
-
-/*****************************************************************************/
-INT_PTR CntAlertMenuCommand(WPARAM wParam, LPARAM)
-{
- DialogBoxParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_ALRT_OPT), nullptr, DlgProcAlertOpt, wParam);
- return 0;
-}
-
-/*****************************************************************************/
-INT_PTR CountdownMenuCommand(WPARAM, LPARAM)
-{
- return 0;
-}
diff --git a/plugins/WebView/src/webview.h b/plugins/WebView/src/webview.h
deleted file mode 100644
index 561557e7e2..0000000000
--- a/plugins/WebView/src/webview.h
+++ /dev/null
@@ -1,254 +0,0 @@
-/*
- * A plugin for Miranda IM which displays web page text in a window Copyright
- * (C) 2005 Vincent Joyce.
- *
- * Miranda IM: the free icq client for MS Windows Copyright (C) 2000-2
- * Richard Hughes, Roland Rabien & Tristan Van de Vreede
- *
- * 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.
- */
-
-#pragma once
-
-#define CFM_BACKCOLOR 0x04000000
-
-#define MODULENAME "WebView"
-
-#define MENU_OFF "DisableMenu"
-#define REFRESH_KEY "Refresh interval"
-#define ON_TOP_KEY "Always on top"
-#define OFFLINE_STATUS "OfflineOnBoot"
-#define URL_KEY "URL"
-#define START_STRING_KEY "Start_string"
-#define END_STRING_KEY "End_String"
-#define DBLE_WIN_KEY "Doub_click_win"
-#define HIDE_STATUS_ICON_KEY "Hide_Status_Icon"
-#define HAS_CRASHED_KEY "Has_Crashed"
-#define U_ALLSITE_KEY "UseAllTheWebsite"
-#define MENU_IS_DISABLED_KEY "MainMenuReallyDisabled"
-#define UPDATE_ONALERT_KEY "WND_UPDATE_OALERY_ONLY"
-#define DISABLE_AUTOUPDATE_KEY "Disable_Auto_Update"
-#define RWSPACE_KEY "level_of_wspace_removal"
-#define PRESERVE_NAME_KEY "PreserveName"
-#define CLEAR_DISPLAY_KEY "Remove_tags_whitespace"
-#define ALRT_S_STRING_KEY "ALRT_S_STRING"
-#define ALRT_E_STRING_KEY "ALRT_E_STRING"
-#define ALRT_INDEX_KEY "AlertIndex"
-#define EVNT_INDEX_KEY "EventIndex"
-#define START_DELAY_KEY "StartUpDelay"
-#define ALWAYS_LOG_KEY "AlwaysLogToFile"
-#define SAVE_INDIVID_POS_KEY "SaveIndividWinPos"
-#define NO_PROTECT_KEY "NoDownloadProtection"
-#define SAVE_AS_RAW_KEY "SaveAsRaw"
-#define FONT_SCRIPT_KEY "FontScript"
-#define STOP_KEY "StopProcessing"
-#define DATA_POPUP_KEY "DisplayDataPopup"
-#define COUNTDOWN_KEY "Countdown"
-
-#define MINUTE 60000
-#define SECOND 1000
-
-#define MS_UPDATE_ALL "Webview/UpdateAll"
-#define MS_ADD_SITE "Webview/AddSite"
-#define MS_AUTO_UPDATE "Webview/AutoUpdate"
-
-#define CACHE_FILE_KEY "Filename"
-
-#define Xpos_WIN_KEY "win_Xpos"
-#define Ypos_WIN_KEY "win_Ypos"
-#define BG_COLOR_KEY "BgColor"
-#define TXT_COLOR_KEY "TxtColor"
-#define WIN_HEIGHT_KEY "Height"
-#define SUPPRESS_ERR_KEY "Suppress error messages"
-#define WIN_WIDTH_KEY "Width"
-#define FILE_KEY "Filename"
-#define APPEND_KEY "Append"
-#define UPDATE_ONSTART_KEY "update_onboot"
-#define UPDATE_ON_OPEN_KEY "update_on_Window_open"
-#define FONT_FACE_KEY "FontFace"
-#define FONT_BOLD_KEY "FontBold"
-#define FONT_ITALIC_KEY "FontItalic"
-#define FONT_UNDERLINE_KEY "FontUnderline"
-#define FONT_SIZE_KEY "FontSize"
-#define ERROR_POPUP_KEY "UsePopupPlugin"
-#define ENABLE_ALERTS_KEY "EnableAlerts"
-#define ALERT_STRING_KEY "ALERTSTRING"
-#define ALERT_TYPE_KEY "Alert_Type"
-#define APND_DATE_NAME_KEY "AppendDateContact"
-#define POP_DELAY_KEY "PopUpDelay"
-#define POP_BG_CLR_KEY "PopBGClr"
-#define POP_TXT_CLR_KEY "PopTxtClr"
-#define POP_USEWINCLRS_KEY "PopUseWinClrs"
-#define CONTACT_PREFIX_KEY "PrefixDateContact"
-#define USE_24_HOUR_KEY "Use24hourformat"
-#define POP_USESAMECLRS_KEY "PopUseSameClrs"
-#define POP_USECUSTCLRS_KEY "PopUseCustomClrs"
-#define LCLK_WINDOW_KEY "LeftClkWindow"
-#define LCLK_WEB_PGE_KEY "LeftClkWebPage"
-#define LCLK_DISMISS_KEY "LeftClkDismiss"
-#define RCLK_WINDOW_KEY "RightClkWindow"
-#define RCLK_WEB_PGE_KEY "RightClkWebPage"
-#define RCLK_DISMISS_KEY "RightClkDismiss"
-
-#define TIME 60
-#define Def_color_bg 0x00ffffff
-#define Def_color_txt 0x00000000
-#define Def_font_face L"Courier"
-#define Def_font_size 14
-#define HK_SHOWHIDE 3001
-
-#define MAXSIZE1 250000
-#define MAXSIZE2 500000
-#define MAXSIZE3 1000000
-
-#define Def_win_height 152
-#define Def_win_width 250
-
-/////////////////////////////////////////////////////////////////////////////////////////
-// lets get rid of some warnings
-
-void CodetoSymbol(char *truncated);
-void GetData(void *param);
-void FillFontListThread(void *);
-
-INT_PTR CALLBACK DlgProcDisplayData(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
-INT_PTR CALLBACK DlgProcAlertOpt(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
-INT_PTR CALLBACK DlgProcOpt(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
-
-int DataWndAlertCommand(WPARAM wParam, LPARAM lParam);
-int PopupAlert(WPARAM wParam, LPARAM lParam);
-int ErrorMsgs(WPARAM wParam, LPARAM lParam);
-int OSDAlert(WPARAM wParam, LPARAM lParam);
-
-void ReadFromFile(void *hContact);
-
-/////////////////////////////////////////////////////////////////////////////////////////
-// some globals for window settings
-
-extern int Xposition, Yposition, WindowHeight, WindowWidth;
-extern COLORREF BackgoundClr, TextClr;
-extern UINT_PTR timerId, Countdown;
-extern LOGFONT g_lf;
-extern HFONT h_font;
-extern HMENU hMenu;
-extern int bpStatus;
-extern HNETLIBUSER hNetlibUser;
-extern MWindowList hWindowList;
-extern HGENMENU hMenuItem1, hMenuItemCountdown;
-extern char optionsname[80];
-
-/////////////////////////////////////////////////////////////////////////////////////////
-// lets get rid of some warnings
-
-void CALLBACK timerfunc(HWND, UINT, UINT_PTR, DWORD);
-void CALLBACK Countdownfunc(HWND, UINT, UINT_PTR, DWORD);
-void SavewinSettings(void);
-void ValidatePosition(HWND hwndDlg);
-int ModulesLoaded(WPARAM wParam, LPARAM lParam);
-wchar_t* FixButtonText(wchar_t *url, size_t len);
-int ContactMenuItemUpdateData (WPARAM wParam, LPARAM lParam);
-
-int Doubleclick(WPARAM wParam, LPARAM lParam);
-int DBSettingChanged(WPARAM wParam, LPARAM lParam);
-
-int SendToRichEdit(HWND hWindow, char *truncated, COLORREF rgbText, COLORREF rgbBack);
-
-/////////////////////////////////////////////////////////////////////////////////////////
-// Services
-
-INT_PTR GetCaps(WPARAM wParam, LPARAM lParam);
-INT_PTR GetName(WPARAM wParam, LPARAM lParam);
-INT_PTR BPLoadIcon(WPARAM wParam, LPARAM lParam); // BPLoadIcon
-
-INT_PTR SetStatus(WPARAM wParam, LPARAM lParam);
-INT_PTR GetStatus(WPARAM wParam, LPARAM lParam);
-
-INT_PTR BasicSearch(WPARAM wParam, LPARAM lParam);
-INT_PTR AddToList(WPARAM wParam, LPARAM lParam);
-INT_PTR GetInfo(WPARAM wParam, LPARAM lParam);
-
-INT_PTR OpenCacheDir(WPARAM wParam, LPARAM lParam);
-
-INT_PTR UpdateAllMenuCommand(WPARAM wParam, LPARAM lParam);
-INT_PTR CountdownMenuCommand(WPARAM wParam, LPARAM lParam);
-INT_PTR MarkAllReadMenuCommand(WPARAM wParam, LPARAM lParam);
-INT_PTR WebsiteMenuCommand(WPARAM wParam, LPARAM lParam);
-INT_PTR AddContactMenuCommand(WPARAM wParam, LPARAM lParam);
-INT_PTR CntOptionsMenuCommand(WPARAM wParam, LPARAM lParam);
-INT_PTR CntAlertMenuCommand(WPARAM wParam, LPARAM lParam);
-INT_PTR DataWndMenuCommand(WPARAM wParam, LPARAM lParam);
-INT_PTR PingWebsiteMenuCommand(WPARAM wParam, LPARAM lParam);
-INT_PTR StpPrcssMenuCommand(WPARAM wParam, LPARAM lParam);
-
-int UpdateMenuCommand(WPARAM wParam, LPARAM lParam, MCONTACT singlecontact);
-int OnTopMenuCommand(WPARAM wParam, LPARAM lParam, MCONTACT singlecontact);
-
-/////////////////////////////////////////////////////////////////////////////////////////
-void ChangeContactStatus(int con_stat);
-void InitialiseGlobals(void);
-void FontSettings(void);
-
-/////////////////////////////////////////////////////////////////////////////////////////
-
-void Removewhitespace(char *truncated);
-void RemoveInvis(char *truncated, int AmountWspcRem);
-void RemoveTabs(char *truncated);
-void FastTagFilter(char *truncated);
-void EraseBlock(char *truncated);
-void EraseSymbols(char *truncated);
-int ProcessAlerts(MCONTACT hContact, char *truncated, char *tstr, char *contactname, int notpresent);
-
-INT_PTR CALLBACK DlgPopUpOpts(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam);
-INT_PTR CALLBACK DlgProcFind(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
-int DataDialogResize(HWND hwndDlg, LPARAM lParam, UTILRESIZECONTROL * urc);
-int OptInitialise(WPARAM, LPARAM);
-
-void Filter(char *truncated);
-void TxtclrLoop();
-void BGclrLoop();
-void ContactLoop(void *dummy);
-void NumSymbols(char *truncated);
-
-INT_PTR AutoUpdateMCmd(WPARAM wParam, LPARAM lParam);
-INT_PTR CALLBACK DlgProcContactOpt(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
-int SiteDeleted(WPARAM wParam, LPARAM lParam);
-
-int WErrorPopup(MCONTACT hContact, wchar_t *textdisplay);
-int WAlertPopup(MCONTACT hContact, wchar_t *displaytext);
-
-/////////////////////////////////////////////////////////////////////////////////////////
-// wrappers
-
-extern HANDLE hHookDisplayDataAlert;
-#define ME_DISPLAYDATA_ALERT "Miranda/ALERT/DISPLAYDATA"
-
-extern HANDLE hHookAlertPopup;
-#define ME_POPUP_ALERT "Miranda/ALERT/POPUP"
-
-extern HANDLE hHookErrorPopup;
-#define ME_POPUP_ERROR "Miranda/ERROR/POPUP"
-
-extern HANDLE hHookAlertOSD;
-#define ME_OSD_ALERT "Miranda/ALERT/OSD"
-
-/////////////////////////////////////////////////////////////////////////////////////////
-
-struct CMPlugin : public PLUGIN<CMPlugin>
-{
- CMPlugin();
-
- int Load() override;
- int Unload() override;
-};
diff --git a/plugins/WebView/src/webview_alerts.cpp b/plugins/WebView/src/webview_alerts.cpp
deleted file mode 100644
index 0c8e36cceb..0000000000
--- a/plugins/WebView/src/webview_alerts.cpp
+++ /dev/null
@@ -1,839 +0,0 @@
-/*
-* A plugin for Miranda IM which displays web page text in a window Copyright
-* (C) 2005 Vincent Joyce.
-*
-* Miranda IM: the free icq client for MS Windows Copyright (C) 2000-2
-* Richard Hughes, Roland Rabien & Tristan Van de Vreede
-*
-* 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 "stdafx.h"
-#include "webview.h"
-
-/*****************************************************************************/
-int CALLBACK PopupDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
-{
- switch (message) {
- case WM_COMMAND:
- case WM_CONTEXTMENU:
- MCONTACT hContact = PUGetContact(hWnd);
- ptrW url(g_plugin.getWStringA(hContact, URL_KEY));
-
- if (message == WM_COMMAND) { // left click
- if (hContact != NULL) {
- // open data window
- if (g_plugin.getByte(LCLK_WINDOW_KEY, 0)) {
- NotifyEventHooks(hHookDisplayDataAlert, (int)hContact, 0);
- mir_forkthread(GetData, (void*)hContact);
- PUDeletePopup(hWnd);
- }
- // open url
- if (g_plugin.getByte(LCLK_WEB_PGE_KEY, 0)) {
- Utils_OpenUrlW(url);
- PUDeletePopup(hWnd);
- g_plugin.setWord(wParam, "Status", ID_STATUS_ONLINE);
- }
- // dismiss
- if (g_plugin.getByte(LCLK_DISMISS_KEY, 1))
- PUDeletePopup(hWnd);
- }
- else if (hContact == NULL)
- PUDeletePopup(hWnd);
- }
- else if (message == WM_CONTEXTMENU) { // right click
- if (hContact != NULL) {
- // open datA window
- if (g_plugin.getByte(RCLK_WINDOW_KEY, 0)) {
- NotifyEventHooks(hHookDisplayDataAlert, (int)hContact, 0);
- mir_forkthread(GetData, (void*)hContact);
- PUDeletePopup(hWnd);
- }
- // open url
- if (g_plugin.getByte(RCLK_WEB_PGE_KEY, 1)) {
- Utils_OpenUrlW(url);
- PUDeletePopup(hWnd);
- g_plugin.setWord(wParam, "Status", ID_STATUS_ONLINE);
- }
- // dismiss
- if (g_plugin.getByte(RCLK_DISMISS_KEY, 0))
- PUDeletePopup(hWnd);
- }
- else if (hContact == NULL)
- PUDeletePopup(hWnd);
- }
- break;
- }
-
- return DefWindowProc(hWnd, message, wParam, lParam);
-}
-
-/*****************************************************************************/
-int WDisplayDataAlert(MCONTACT hContact)
-{
- NotifyEventHooks(hHookDisplayDataAlert, hContact, 0);
- return 0;
-}
-
-/*****************************************************************************/
-int WAlertPopup(MCONTACT hContact, wchar_t *displaytext)
-{
- NotifyEventHooks(hHookAlertPopup, hContact, (LPARAM)displaytext);
- return 0;
-}
-
-/*****************************************************************************/
-int WErrorPopup(MCONTACT hContact, wchar_t *textdisplay)
-{
- NotifyEventHooks(hHookErrorPopup, hContact, (LPARAM)textdisplay);
- return 0;
-}
-
-/*****************************************************************************/
-int WAlertOSD(MCONTACT hContact, wchar_t *displaytext)
-{
- NotifyEventHooks(hHookAlertOSD, hContact, (LPARAM)displaytext);
- return 0;
-}
-
-/*****************************************************************************/
-int PopupAlert(WPARAM hContact, LPARAM lParam)
-{
- POPUPDATAW ppd = { 0 };
-
- if (hContact != 0)
- mir_wstrncpy(ppd.lpwzContactName, ptrW(g_plugin.getWStringA(hContact, PRESERVE_NAME_KEY)), _countof(ppd.lpwzContactName));
- else
- mir_wstrcpy(ppd.lpwzContactName, _A2W(MODULENAME));
-
- ppd.lchContact = hContact;
- ppd.lchIcon = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_SITE));
-
- wchar_t *displaytext = (wchar_t*)lParam;
- if ((mir_wstrlen(displaytext) == MAX_SECONDLINE) || (mir_wstrlen(displaytext) > MAX_SECONDLINE))
- mir_snwprintf(ppd.lpwzText, displaytext);
- else if (mir_wstrlen(displaytext) < MAX_SECONDLINE)
- mir_snwprintf(ppd.lpwzText, displaytext);
-
- if (g_plugin.getByte(POP_USECUSTCLRS_KEY, 0)) {
- ppd.colorBack = g_plugin.getDword(POP_BG_CLR_KEY, Def_color_bg);
- ppd.colorText = g_plugin.getDword(POP_TXT_CLR_KEY, Def_color_txt);
- }
- else if (g_plugin.getByte(POP_USEWINCLRS_KEY, 0)) {
- ppd.colorBack = GetSysColor(COLOR_BTNFACE);
- ppd.colorText = GetSysColor(COLOR_WINDOWTEXT);
- }
- else if (g_plugin.getByte(POP_USESAMECLRS_KEY, 1)) {
- ppd.colorBack = BackgoundClr;
- ppd.colorText = TextClr;
- }
-
- ppd.PluginWindowProc = nullptr;
- ppd.iSeconds = g_plugin.getDword(POP_DELAY_KEY, 0);
-
- if (ServiceExists(MS_POPUP_ADDPOPUPW))
- CallService(MS_POPUP_ADDPOPUPW, (WPARAM)&ppd, 0);
-
- return 0;
-}
-
-/*****************************************************************************/
-int OSDAlert(WPARAM hContact, LPARAM lParam)
-{
- char contactname[255], newdisplaytext[2000];
- contactname[0] = 0;
-
- if (hContact != NULL) {
- DBVARIANT dbv;
- if (!g_plugin.getString(hContact, PRESERVE_NAME_KEY, &dbv)) {
- strncpy_s(contactname, _countof(contactname), dbv.pszVal, _TRUNCATE);
- db_free(&dbv);
- }
- }
- if (contactname[0] == 0)
- strncpy_s(contactname, _countof(contactname), MODULENAME, _TRUNCATE);
-
- char *displaytext = (char*)lParam;
- mir_snprintf(newdisplaytext, "%s: %s", contactname, Translate(displaytext));
-
- if (ServiceExists("OSD/Announce"))
- CallService("OSD/Announce", (WPARAM)newdisplaytext, 0);
-
- return 0;
-}
-
-/*****************************************************************************/
-int ErrorMsgs(WPARAM wParam, LPARAM lParam)
-{
- MCONTACT hContact = wParam;
- wchar_t newdisplaytext[2000], *displaytext = (wchar_t*)lParam;
-
- if (g_plugin.getByte(SUPPRESS_ERR_KEY, 0))
- return 0;
-
- wchar_t *ptszContactName = Clist_GetContactDisplayName(hContact);
- if (ServiceExists(MS_POPUP_ADDPOPUPW) && g_plugin.getByte(ERROR_POPUP_KEY, 0)) {
- mir_snwprintf(newdisplaytext, L"%s\n%s", ptszContactName, displaytext);
- PUShowMessageW(newdisplaytext, SM_WARNING);
- }
- else if (ServiceExists("OSD/Announce") && g_plugin.getByte(ERROR_POPUP_KEY, 0)) {
- mir_snwprintf(newdisplaytext, L"%s: %s", ptszContactName, TranslateW(displaytext));
- CallService("OSD/Announce", (WPARAM)newdisplaytext, 0);
- }
-
- Clist_TrayNotifyW(nullptr, ptszContactName, TranslateW(displaytext), NIIF_ERROR, 15000);
- return 0;
-}
-
-/*****************************************************************************/
-void SaveToFile(MCONTACT hContact, char *truncated)
-{
- char *mode;
- if (!g_plugin.getByte(hContact, APPEND_KEY, 0))
- mode = "w";
- else
- mode = "a";
-
- char url[300]; url[0] = '\0';
- DBVARIANT dbv;
- if (!g_plugin.getString(hContact, URL_KEY, &dbv)) {
- strncpy_s(url, _countof(url), dbv.pszVal, _TRUNCATE);
- db_free(&dbv);
- }
-
- if (g_plugin.getString(hContact, FILE_KEY, &dbv))
- return;
-
- FILE *pfile = fopen(dbv.pszVal, mode);
- if (pfile == nullptr)
- WErrorPopup(hContact, TranslateT("Cannot write to file"));
- else {
- char timestring[128], timeprefix[32];
- char temptime1[32], temptime2[32];
-
- time_t ftime = time(0);
- struct tm *nTime = localtime(&ftime);
-
- mir_snprintf(timeprefix, " %s ", Translate("Last updated on"));
- strftime(temptime1, 32, " %a, %b %d, %Y ", nTime);
- strftime(temptime2, 32, " %I:%M %p.", nTime);
- mir_snprintf(timestring, "(%s)%s\n%s,%s\n", MODULENAME, url, temptime1, temptime2);
-
- fputs(timestring, pfile);
- fwrite(truncated, mir_strlen(truncated), 1, pfile);
- fputs("\n\n", pfile);
- fclose(pfile);
- }
-
- db_free(&dbv);
-}
-
-/*****************************************************************************/
-int ProcessAlerts(MCONTACT hContact, char *truncated, char *tstr, char *contactname, int notpresent)
-{
- char alertstring[255];
- wchar_t displaystring[300];
- FILE *pcachefile;
- DBVARIANT tdbv;
- int wasAlert = 0;
-
- int statalertpos = 0, disalertpos = 0, statalertposend = 0;
- char*alertpos;
- char Alerttempstring[300], Alerttempstring2[300];
- static char cachecompare[MAXSIZE1];
- static char raw[MAXSIZE1];
-
- int alertIndex = 0, eventIndex = 0;
-
- char tempraw[MAXSIZE1];
- memset(&tempraw, 0, sizeof(tempraw));
- memset(&raw, 0, sizeof(raw));
-
- strncpy(tempraw, truncated, _countof(tempraw));
-
- memset(&alertstring, 0, sizeof(alertstring));
- memset(&Alerttempstring, 0, sizeof(Alerttempstring));
- memset(&Alerttempstring2, 0, sizeof(Alerttempstring2));
- memset(&cachecompare, 0, sizeof(cachecompare));
-
- // alerts
- if (g_plugin.getByte(hContact, ENABLE_ALERTS_KEY, 0)) { // ALERTS
- alertIndex = g_plugin.getByte(hContact, ALRT_INDEX_KEY, 0);
- eventIndex = g_plugin.getByte(hContact, EVNT_INDEX_KEY, 0);
- if (notpresent) {
- if (alertIndex == 0) { // Popup
- Sleep(1000);
- WAlertPopup(hContact, TranslateT("Start/end strings not found or strings not set."));
- // contactlist name//
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- else if (alertIndex == 1) { // log to file
- if (!g_plugin.getString(hContact, FILE_KEY, &tdbv)) {
- int AmountWspcRem = 0;
-
- if (!g_plugin.getByte(hContact, SAVE_AS_RAW_KEY, 0)) {
- CodetoSymbol(tempraw);
- Sleep(100); // avoid 100% CPU
-
- EraseBlock(tempraw);
- Sleep(100); // avoid 100% CPU
-
- FastTagFilter(tempraw);
- Sleep(100); // avoid 100% CPU
-
- NumSymbols(tempraw);
- Sleep(100); // avoid 100% CPU
-
- EraseSymbols(tempraw);
- Sleep(100); // avoid 100% CPU
-
- AmountWspcRem = g_plugin.getByte(hContact, RWSPACE_KEY, 0);
- RemoveInvis(tempraw, AmountWspcRem);
- Sleep(100); // avoid 100% CPU
-
- Removewhitespace(tempraw);
- }
-
- SaveToFile(hContact, tempraw);
- db_free(&tdbv);
-
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- }
- else if (alertIndex == 3) {
- WAlertOSD(hContact, TranslateT("Alert start/end strings not found or strings not set."));
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- else if (eventIndex == 2) {
- WDisplayDataAlert(hContact);
-
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
-
- HWND hwndDlg = (WindowList_Find(hWindowList, hContact));
-
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Start/end strings not found or strings not set."));
- }
- else MessageBox(nullptr, TranslateT("Start/end strings not found or strings not set."), _A2W(MODULENAME), MB_OK);
- }
-
- if (eventIndex == 0) { // string present
- if (!g_plugin.getString(hContact, ALERT_STRING_KEY, &tdbv)) {
- strncpy_s(alertstring, _countof(alertstring), tdbv.pszVal, _TRUNCATE);
- db_free(&tdbv);
-
- if ((strstr(tempraw, alertstring)) != nullptr) { // // ENDALERT EVENT:CHECK FOR STRING
- // there was an alert
- wasAlert = 1;
-
- // play sound?
- Skin_PlaySound("webviewalert");
- //
- if ((!notpresent)) {
- if (alertIndex == 0) { // popup
- mir_snwprintf(displaystring, L"%s \"%S\" %s.", Translate("The string"), alertstring, Translate("has been found on the web page"));
- WAlertPopup(hContact, displaystring);
-
- // contactlist name//
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- } //
- else if (alertIndex == 1) {
- if (!g_plugin.getString(hContact, FILE_KEY, &tdbv)) {
- int AmountWspcRem = 0;
- if (!g_plugin.getByte(hContact, SAVE_AS_RAW_KEY, 0)) {
- CodetoSymbol(tempraw);
- Sleep(100); // avoid 100% CPU
-
- EraseBlock(tempraw);
- Sleep(100); // avoid 100% CPU
-
- FastTagFilter(tempraw);
- Sleep(100); // avoid 100% CPU
-
- NumSymbols(tempraw);
- Sleep(100); // avoid 100% CPU
-
- EraseSymbols(tempraw);
- Sleep(100); // avoid 100% CPU
-
- AmountWspcRem = g_plugin.getByte(hContact, RWSPACE_KEY, 0);
- RemoveInvis(tempraw, AmountWspcRem);
- Sleep(100); // avoid 100% CPU
-
- Removewhitespace(tempraw);
- }
- SaveToFile(hContact, tempraw);
- db_free(&tdbv);
-
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- }
- else if (alertIndex == 3) {
- mir_snwprintf(displaystring, L"%s \"%s\" %s.", TranslateT("The string"), alertstring, TranslateT("has been found on the web page"));
- WAlertOSD(hContact, displaystring);
-
- // contactlist name//
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- else if (alertIndex == 2) {
- WDisplayDataAlert(hContact);
- // contactlist name//
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
-
- HWND hwndDlg = WindowList_Find(hWindowList, hContact);
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Download successful; about to process data..."));
- }
- else MessageBox(nullptr, TranslateT("Unknown alert type."), _A2W(MODULENAME), MB_OK);
- }
- }
- }
- }
- else if (eventIndex == 1) { // webpage changed
- // TEST GET NAME FOR CACHE
- wchar_t cachepath[MAX_PATH], cachedirectorypath[MAX_PATH], newcachepath[MAX_PATH + 50];
- GetModuleFileName(g_plugin.getInst(), cachepath, _countof(cachepath));
- wchar_t *cacheend = wcsrchr(cachepath, '\\');
- cacheend++;
- *cacheend = '\0';
-
- mir_snwprintf(cachedirectorypath, L"%s%S%S", cachepath, MODULENAME, "cache\\");
- CreateDirectory(cachedirectorypath, nullptr);
- mir_snwprintf(newcachepath, L"%s%S%S%S%S", cachepath, MODULENAME, "cache\\", contactname, ".txt");
- // file exists?
- if (_waccess(newcachepath, 0) != -1) {
- if ((pcachefile = _wfopen(newcachepath, L"r")) == nullptr)
- WErrorPopup((UINT_PTR)contactname, TranslateT("Cannot read from file"));
- else {
- memset(&cachecompare, 0, sizeof(cachecompare));
- fread(cachecompare, sizeof(cachecompare), 1, pcachefile);
- fclose(pcachefile);
- }
- }
- // write to cache
- if ((pcachefile = _wfopen(newcachepath, L"w")) == nullptr)
- WErrorPopup((UINT_PTR)contactname, TranslateT("Cannot write to file 1"));
- else {
- fwrite(tempraw, mir_strlen(tempraw), 1, pcachefile); //smaller cache
- fclose(pcachefile);
- g_plugin.setWString(hContact, CACHE_FILE_KEY, newcachepath);
- }
- // end write to cache
-
- if (strncmp(tempraw, cachecompare, mir_strlen(tempraw)) != 0) { //lets try this instead
- // play sound?
- Skin_PlaySound("webviewalert");
- // there was an alert
- wasAlert = 1;
-
- if (!notpresent) {
- if (alertIndex == 0) { // popup
- WAlertPopup(hContact, TranslateT("The web page has changed."));
- // contactlist name//
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- else if (alertIndex == 3) { // osd
- WAlertOSD(hContact, TranslateT("The web page has changed."));
- // contactlist name//
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- else if (alertIndex == 1) { // log
- if (!g_plugin.getString(hContact, FILE_KEY, &tdbv)) {
- int AmountWspcRem = 0;
-
- if (!g_plugin.getByte(hContact, SAVE_AS_RAW_KEY, 0)) {
- CodetoSymbol(tempraw);
- Sleep(100); // avoid 100% CPU
-
- EraseBlock(tempraw);
- Sleep(100); // avoid 100% CPU
-
- FastTagFilter(tempraw);
- Sleep(100); // avoid 100% CPU
-
- NumSymbols(tempraw);
- Sleep(100); // avoid 100% CPU
-
- EraseSymbols(tempraw);
- Sleep(100); // avoid 100% CPU
-
- AmountWspcRem = g_plugin.getByte(hContact, RWSPACE_KEY, 0);
- RemoveInvis(tempraw, AmountWspcRem);
- Sleep(100); // avoid 100% CPU
-
- Removewhitespace(tempraw);
- }
-
- SaveToFile(hContact, tempraw);
- db_free(&tdbv);
- // contactlist name//
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- }
- else if (alertIndex == 2) { // window
- WDisplayDataAlert(hContact);
- // contactlist name//
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- else MessageBox(nullptr, TranslateT("Unknown alert type."), _A2W(MODULENAME), MB_OK);
- }
- }
- }
-
- if (eventIndex == 2) { // part of webpage changed
- Alerttempstring[0] = Alerttempstring2[0] = 0;
- if (!g_plugin.getString(hContact, ALRT_S_STRING_KEY, &tdbv)) {
- strncpy_s(Alerttempstring, _countof(Alerttempstring), tdbv.pszVal, _TRUNCATE);
- db_free(&tdbv);
- }
- if (!g_plugin.getString(hContact, ALRT_E_STRING_KEY, &tdbv)) {
- strncpy_s(Alerttempstring2, _countof(Alerttempstring2), tdbv.pszVal, _TRUNCATE);
- db_free(&tdbv);
- }
-
- // putting data into string
- if (((strstr(tempraw, Alerttempstring)) != nullptr) && ((strstr(tempraw, Alerttempstring2)) != nullptr)) {
- //start string
- alertpos = strstr(tempraw, Alerttempstring);
- statalertpos = alertpos - tempraw;
-
- memset(&alertpos, 0, sizeof(alertpos));
- //end string
- alertpos = strstr(tempraw, Alerttempstring2);
- statalertposend = alertpos - tempraw + (int)mir_strlen(Alerttempstring2);
-
- if (statalertpos > statalertposend) {
- memset(&tempraw, ' ', statalertpos);
- memset(&alertpos, 0, sizeof(alertpos));
- alertpos = strstr(tempraw, Alerttempstring2);
- statalertposend = alertpos - tempraw + (int)mir_strlen(Alerttempstring2);
- }
-
- if (statalertpos < statalertposend) {
- memset(&raw, 0, sizeof(raw));
-
- //start string
- alertpos = strstr(tempraw, Alerttempstring);
- statalertpos = alertpos - tempraw;
-
- //end string
- alertpos = strstr(tempraw, Alerttempstring2);
- statalertposend = alertpos - tempraw + (int)mir_strlen(Alerttempstring2);
-
- if (statalertpos > statalertposend) {
- memset(&tempraw, ' ', statalertpos);
- memset(&alertpos, 0, sizeof(alertpos));
- alertpos = strstr(tempraw, Alerttempstring2);
- statalertposend = alertpos - tempraw + (int)mir_strlen(Alerttempstring2);
- }
- disalertpos = 0;
-
- //write selected data to string
- strncpy(raw, &tempraw[statalertpos], (statalertposend - statalertpos));
- raw[(statalertposend - statalertpos)] = '\0';
- }
- } // end putting data into string
- else { // start and/or end string not present
- if (alertIndex == 0) { // popup
- Sleep(1000);
- WAlertPopup(hContact, TranslateT("Alert start/end strings not found or strings not set."));
- // contactlist name//
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- else if (alertIndex == 1) { // LOG
- if (!notpresent) { // dont log to file twice if both types of start/end strings not present
- if (!g_plugin.getString(hContact, FILE_KEY, &tdbv)) {
- int AmountWspcRem = 0;
- if (!g_plugin.getByte(hContact, SAVE_AS_RAW_KEY, 0)) {
- CodetoSymbol(tempraw);
- Sleep(100); // avoid 100% CPU
-
- EraseBlock(tempraw);
- Sleep(100); // avoid 100% CPU
-
- FastTagFilter(tempraw);
- Sleep(100); // avoid 100% CPU
-
- NumSymbols(tempraw);
- Sleep(100); // avoid 100% CPU
-
- EraseSymbols(tempraw);
- Sleep(100); // avoid 100% CPU
-
- AmountWspcRem = g_plugin.getByte(hContact, RWSPACE_KEY, 0);
- RemoveInvis(tempraw, AmountWspcRem);
- Sleep(100); // avoid 100% CPU
-
- Removewhitespace(tempraw);
- }
-
- SaveToFile(hContact, tempraw);
- db_free(&tdbv);
- // contactlist name
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- }
- }
- else if (alertIndex == 3) { // osd
- WAlertOSD(hContact, TranslateT("Alert start/end strings not found or strings not set."));
- // contactlist name//
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- else if (alertIndex == 2) { // window
- WDisplayDataAlert(hContact);
- // contactlist name//
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
-
- HWND hwndDlg = (WindowList_Find(hWindowList, hContact));
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Alert start/end strings not found or strings not set."));
- }
- else MessageBox(nullptr, TranslateT("Alert start/end strings not found or strings not set."), _A2W(MODULENAME), MB_OK);
-
- g_plugin.setWord(hContact, "Status", ID_STATUS_AWAY);
- }
-
- ///////////////
- if (((strstr(tempraw, Alerttempstring)) != nullptr) && ((strstr(tempraw, Alerttempstring2)) != nullptr)) {
- // TEST GET NAME FOR CACHE
- wchar_t cachepath[MAX_PATH], cachedirectorypath[MAX_PATH], newcachepath[MAX_PATH + 50];
- GetModuleFileName(g_plugin.getInst(), cachepath, _countof(cachepath));
- wchar_t *cacheend = wcsrchr(cachepath, '\\');
- cacheend++;
- *cacheend = '\0';
-
- mir_snwprintf(cachedirectorypath, L"%s%S%S", cachepath, MODULENAME, "cache\\");
- CreateDirectory(cachedirectorypath, nullptr);
- mir_snwprintf(newcachepath, L"%s%S%S%S%S", cachepath, MODULENAME, "cache\\", contactname, ".txt");
- // file exists?
- if (_waccess(newcachepath, 0) != -1) {
- if ((pcachefile = _wfopen(newcachepath, L"r")) == nullptr)
- WErrorPopup((UINT_PTR)contactname, TranslateT("Cannot read from file"));
- else {
- memset(&cachecompare, 0, sizeof(cachecompare));
- fread(cachecompare, sizeof(cachecompare), 1, pcachefile);
- fclose(pcachefile);
- }
- }
- // write to cache
- if ((pcachefile = _wfopen(newcachepath, L"w")) == nullptr)
- WErrorPopup((UINT_PTR)contactname, TranslateT("Cannot write to file 2"));
- else {
- fwrite(raw, mir_strlen(raw), 1, pcachefile); //smaller cache
- g_plugin.setWString(hContact, CACHE_FILE_KEY, newcachepath);
- fclose(pcachefile);
- }
- // end write to cache
- if (strncmp(raw, cachecompare, (mir_strlen(raw))) != 0) { //lets try this instead
- // play sound?
- Skin_PlaySound("webviewalert");
- // there was an alert
- wasAlert = 1;
-
- if (!notpresent) {
- if (alertIndex == 0) { // popup
- WAlertPopup(hContact, TranslateT("Specific part of the web page has changed."));
- // contactlist name//
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- else if (alertIndex == 3) { // osd
- WAlertOSD(hContact, TranslateT("Specific part of the web page has changed."));
- // contactlist name//
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- else if (alertIndex == 1) { // log to file
- if (!g_plugin.getString(hContact, FILE_KEY, &tdbv)) {
- int AmountWspcRem = 0;
- if (!g_plugin.getByte(hContact, SAVE_AS_RAW_KEY, 0)) {
- CodetoSymbol(tempraw);
- Sleep(100); // avoid 100% CPU
-
- EraseBlock(tempraw);
- Sleep(100); // avoid 100% CPU
-
- FastTagFilter(tempraw);
- Sleep(100); // avoid 100% CPU
-
- NumSymbols(tempraw);
- Sleep(100); // avoid 100% CPU
-
- EraseSymbols(tempraw);
- Sleep(100); // avoid 100% CPU
-
- AmountWspcRem = g_plugin.getByte(hContact, RWSPACE_KEY, 0);
- RemoveInvis(tempraw, AmountWspcRem);
- Sleep(100); // avoid 100% CPU
-
- Removewhitespace(tempraw);
- }
-
- SaveToFile(hContact, tempraw);
- db_free(&tdbv);
- // contactlist name
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- }
- else if (alertIndex == 2) { // window
- WDisplayDataAlert(hContact);
- // contactlist name//
- if (g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0))
- db_set_s(hContact, "CList", "MyHandle", tstr);
- }
- else MessageBox(nullptr, TranslateT("Unknown alert type."), _A2W(MODULENAME), MB_OK);
- }
- }
- }
- } // alert type
- }
- // end alerts
-
- //if always log to file option is enabled do this
- if (wasAlert && alertIndex != 1) { // dont do for log to file alert
- if (g_plugin.getByte(hContact, ALWAYS_LOG_KEY, 0)) {
- if (!g_plugin.getString(hContact, FILE_KEY, &tdbv)) {
- int AmountWspcRem = 0;
-
- if (!g_plugin.getByte(hContact, SAVE_AS_RAW_KEY, 0)) {
- CodetoSymbol(tempraw);
- Sleep(100); // avoid 100% CPU
-
- EraseBlock(tempraw);
- Sleep(100); // avoid 100% CPU
-
- FastTagFilter(tempraw);
- Sleep(100); // avoid 100% CPU
-
- NumSymbols(tempraw);
- Sleep(100); // avoid 100% CPU
-
- EraseSymbols(tempraw);
- Sleep(100); // avoid 100% CPU
-
- AmountWspcRem = g_plugin.getByte(hContact, RWSPACE_KEY, 0);
- RemoveInvis(tempraw, AmountWspcRem);
- Sleep(100); // avoid 100% CPU
-
- Removewhitespace(tempraw);
- }
-
- SaveToFile(hContact, tempraw);
- db_free(&tdbv);
- }
- }
- }
- strncpy(truncated, tempraw, mir_strlen(truncated));
- return wasAlert;
-}
-
-/*****************************************************************************/
-int DataWndAlertCommand(WPARAM wParam, LPARAM)
-{
- MCONTACT hContact = wParam;
- if (WindowList_Find(hWindowList, hContact))
- return 0;
-
- HWND hwndDlg = CreateDialogParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_DISPLAY_DATA), nullptr, DlgProcDisplayData, hContact);
- HWND hTopmost = g_plugin.getByte(hContact, ON_TOP_KEY, 0) ? HWND_TOPMOST : HWND_NOTOPMOST;
- SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM)((HICON)LoadImage(g_plugin.getInst(), MAKEINTRESOURCE(IDI_STICK), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0)));
- if (g_plugin.getByte(SAVE_INDIVID_POS_KEY, 0))
- SetWindowPos(hwndDlg, hTopmost,
- g_plugin.getDword(hContact, "WVx", 100), // Xposition,
- g_plugin.getDword(hContact, "WVy", 100), // Yposition,
- g_plugin.getDword(hContact, "WVwidth", 100), // WindowWidth,
- g_plugin.getDword(hContact, "WVheight", 100), 0); // WindowHeight,
- else
- SetWindowPos(hwndDlg, HWND_TOPMOST, Xposition, Yposition, WindowWidth, WindowHeight, 0);
-
- ShowWindow(hwndDlg, SW_SHOW);
- SetActiveWindow(hwndDlg);
- return 0;
-}
-
-/*****************************************************************************/
-void ReadFromFile(void *param)
-{
- MCONTACT hContact = (UINT_PTR)param;
-
- DBVARIANT dbv;
- char truncated[MAXSIZE1];
- int AmountWspcRem = 0;
- int fileexists = 0;
-
- HWND hwndDlg = WindowList_Find(hWindowList, hContact);
-
- char contactname[100]; contactname[0] = 0;
- if (!db_get_s(hContact, "CList", "MyHandle", &dbv)) {
- strncpy_s(contactname, _countof(contactname), dbv.pszVal, _TRUNCATE);
- db_free(&dbv);
- }
-
- if (g_plugin.getString(hContact, CACHE_FILE_KEY, &dbv))
- return;
-
- FILE *pfile;
- if ((pfile = fopen(dbv.pszVal, "r")) == nullptr) {
- SendToRichEdit(hwndDlg, Translate("Cannot read from cache file"), TextClr, BackgoundClr);
- fileexists = 0;
- }
- else {
- fread(truncated, sizeof(truncated), 1, pfile);
- fclose(pfile);
- fileexists = 1;
- }
-
- db_free(&dbv);
-
- if (fileexists) {
- CodetoSymbol(truncated);
- Sleep(100); // avoid 100% CPU
-
- EraseBlock(truncated);
- Sleep(100); // avoid 100% CPU
-
- FastTagFilter(truncated);
- Sleep(100); // avoid 100% CPU
-
- NumSymbols(truncated);
- Sleep(100); // avoid 100% CPU
-
- EraseSymbols(truncated);
- Sleep(100); // avoid 100% CPU
-
- AmountWspcRem = g_plugin.getByte(hContact, RWSPACE_KEY, 0);
- RemoveInvis(truncated, AmountWspcRem);
- Sleep(100); // avoid 100% CPU
-
- Removewhitespace(truncated);
-
- SendToRichEdit(hwndDlg, truncated, TextClr, BackgoundClr);
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Loaded from cache"));
- }
-}
diff --git a/plugins/WebView/src/webview_cleanup.cpp b/plugins/WebView/src/webview_cleanup.cpp
deleted file mode 100644
index 9325881d38..0000000000
--- a/plugins/WebView/src/webview_cleanup.cpp
+++ /dev/null
@@ -1,797 +0,0 @@
-/*
-* A plugin for Miranda IM which displays web page text in a window Copyright
-* (C) 2005 Vincent Joyce.
-*
-* Miranda IM: the free icq client for MS Windows Copyright (C) 2000-2
-* Richard Hughes, Roland Rabien & Tristan Van de Vreede
-*
-* 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 "stdafx.h"
-#include "webview.h"
-
-// ///////////////////////
-// characters and symbols//
-// ///////////////////////
-
-#define AMOUNT3 164
-
-char*CharacterCodes[AMOUNT3] =
-{
- "&quot;",
- "&amp;",
- "&lt;",
- "&gt;",
- "&nbsp;",
- "&iexcl;",
- "&cent;",
- "&pound;",
- "&curren;",
- "&yen;",
- "&brvbar",
- "&sect;",
- "&uml;",
- "&copy;",
- "&ordf;",
- "&laquo;",
- "&not;",
- "&shy;",
- "&reg;",
- "&macr;",
- "&deg;",
- "&plusmn;",
- "&sup2;",
- "&sup3;",
- "&acute;",
- "&micro;",
- "&para;",
- "&middot;",
- "&cedil;",
- "&sup1;",
- "&ordm;",
- "&raquo;",
- "&frac14;",
- "&frac12;",
- "&frac34;",
- "&iquest;",
- "&Agrave;",
- "&Aacute;",
- "&Acirc;",
- "&Atilde;",
- "&Auml;",
- "&Aring;",
- "&AElig;",
- "&Ccedil;",
- "&Egrave;",
- "&Eacute;",
- "&Ecirc;",
- "&Euml;",
- "&Igrave;",
- "&Iacute;",
- "&Icirc;",
- "&Iuml;",
- "&ETH;",
- "&Ntilde;",
- "&Ograve;",
- "&Oacute;",
- "&Ocirc;",
- "&Otilde;",
- "&Ouml;",
- "&times;",
- "&Oslash;",
- "&Ugrave;",
- "&Uacute;",
- "&Ucirc;",
- "&Uuml;",
- "&Yacute;",
- "&THORN;",
- "&szlig;",
- "&agrave;",
- "&aacute;",
- "&acirc;",
- "&atilde;",
- "&auml;",
- "&aring;",
- "&aelig;",
- "&ccedil;",
- "&egrave;",
- "&eacute;",
- "&ecirc;",
- "&euml;",
- "&igrave;",
- "&iacute;",
- "&icirc;",
- "&iuml;",
- "&eth;",
- "&ntilde;",
- "&ograve;",
- "&oacute;",
- "&ocirc;",
- "&otilde;",
- "&ouml;",
- "&divide;",
- "&oslash;",
- "&ugrave;",
- "&uacute;",
- "&ucirc;",
- "&uuml;",
- "&yacute;",
- "&thorn;",
- "&yumil;",
- "&#338;", // greater that 255, extra latin characters
- "&#339;",
- "&#352;",
- "&#353;",
- "&#376;",
- "&#402;",
- "&#710;",
- "&#732;",
- "&OElig;",
- "&oelig;",
- "&Scaron;",
- "&scaron;",
- "&Yuml;",
- "&fnof;",
- "&circ;",
- "&tilde;",
- "&#8211;", // Misc other characters
- "&#8212;",
- "&#8216;",
- "&#8217;",
- "&#8218;",
- "&#8220;",
- "&#8221;",
- "&#8222;",
- "&#8224;",
- "&#8225;",
- "&#8226;",
- "&#8230;",
- "&#8240;",
- "&#8249;",
- "&#8250;",
- "&#8364;",
- "&#8465;",
- "&#8476;",
- "&#8482;",
- "&ndash;",
- "&mdash;",
- "&lsquo;",
- "&rsquo;",
- "&sbquo;",
- "&ldquo;",
- "&rdquo;",
- "&bdquo;",
- "&dagger;",
- "&Dagger;",
- "&bull;",
- "&hellip;",
- "&permil;",
- "&lsaquo;",
- "&rsaquo;",
- "&euro;",
- "&image;",
- "&real;",
- "&trade;",
- "&ensp;",
- "&emsp;",
- "&thinsp;",
- "&#8194;",
- "&#8195;",
- "&#8201;",
- "&otilde;", // symbols without numeric code
- "&iquest;",
- "&brvbar;",
- "&macr;"};
-
-char Characters[AMOUNT3] =
-{
- '\"',
- '&',
- '<',
- '>',
- ' ',
- '¡',
- '¢',
- '£',
- '¤',
- '¥',
- '¦',
- '§',
- '¨',
- '©',
- 'ª',
- '«',
- '¬',
- '­',
- '®',
- '¯',
- '°',
- '±',
- '²',
- '³',
- '´',
- 'µ',
- '¶',
- '·',
- '¸',
- '¹',
- 'º',
- '»',
- '¼',
- '½',
- '¾',
- '¿',
- 'À',
- 'Á',
- 'Â',
- 'Ã',
- 'Ä',
- 'Å',
- 'Æ',
- 'Ç',
- 'È',
- 'É',
- 'Ê',
- 'Ë',
- 'Ì',
- 'Í',
- 'Î',
- 'Ï',
- 'Ð',
- 'Ñ',
- 'Ò',
- 'Ó',
- 'Ô',
- 'Õ',
- 'Ö',
- '×',
- 'Ø',
- 'Ù',
- 'Ú',
- 'Û',
- 'Ü',
- 'Ý',
- 'Þ',
- 'ß',
- 'à',
- 'á',
- 'â',
- 'ã',
- 'ä',
- 'å',
- 'æ',
- 'ç',
- 'è',
- 'é',
- 'ê',
- 'ë',
- 'ì',
- 'í',
- 'î',
- 'ï',
- 'ð',
- 'ñ',
- 'ò',
- 'ó',
- 'ô',
- 'õ',
- 'ö',
- '÷',
- 'ø',
- 'ù',
- 'ú',
- 'û',
- 'ü',
- 'ý',
- 'þ',
- 'ÿ',
- 'Œ', // greater than 255 extra latin characters
- 'œ',
- 'Š',
- 'š',
- 'Ÿ',
- 'ƒ',
- 'ˆ',
- '˜',
- 'Œ',
- 'œ',
- 'Š',
- 'š',
- 'Ÿ',
- 'ƒ',
- 'ˆ',
- '˜',
- '–',
- '—', // misc other characters
- '‘',
- '’',
- '‚',
- '“',
- '”',
- '„',
- '†',
- '‡',
- '•',
- '…',
- '‰',
- '‹',
- '›',
- '€',
- 'I',
- 'R',
- '™',
- '–',
- '—',
- '‘',
- '’',
- '‚',
- '“',
- '”',
- '„',
- '†',
- '‡',
- '•',
- '…',
- '‰',
- '‹',
- '›',
- '€',
- 'I',
- 'R',
- '™',
- ' ',
- ' ',
- ' ',
- ' ',
- ' ',
- ' ',
- 'õ',
- '¿',
- '¦',
- '¯'};
-
-/*****************************************************************************/
-void CodetoSymbol(char *truncated)
-{
- int counter = 0;
- int position = 0, recpos = 0;
- static char *stringfrompos;
-
- for (int n = 0; n < AMOUNT3; n++) {
- while (true) { // loop forever
- Sleep(1); // avoid 100% CPU
-
- if ( strstr(truncated, CharacterCodes[n]) != nullptr) { // does character code exist?
- stringfrompos = strstr(truncated, CharacterCodes[n]);
-
- position = stringfrompos - truncated;
- counter = 0;
- while (counter != mir_strlen(CharacterCodes[n])) {
- truncated[position + counter] = ' ';
- counter++;
- }
-
- truncated[(position + counter) - 1] = Characters[n];
- strncpy(&truncated[position], &truncated[position + mir_strlen(CharacterCodes[n])] - 1, mir_strlen(&truncated[position]) - 1);
- } // end does character code exist?
-
- if (recpos == position)
- break; // break out of loop if doesn't find new character code
-
- recpos = position;
- } // end loop forever
- } // for
-}
-
-/*****************************************************************************/
-void EraseBlock(char *truncated)
-{
- int counter = 0;
- int positionStart = 0, positionEnd = 0;
- char *stringfrompos;
- int BlockLength = 0;
-
- char* tempraw = (char*)malloc(MAXSIZE1);
- if (truncated)
- strncpy(tempraw, truncated, MAXSIZE1);
-
- // ///////////////////////////
-
- while (true) {
- Sleep(1); // avoid 100% CPU
- // /get start and end of block
-
- if (strstr(tempraw, "<!--") != nullptr) // does tag exist?
- {
- stringfrompos = strstr(tempraw, "<!--");
- positionStart = stringfrompos - tempraw;
- }
-
- if (strstr(tempraw, "-->") != nullptr) // does tag exist?
- {
- stringfrompos = strstr(tempraw, "-->");
- positionEnd = stringfrompos - tempraw;
- }
- BlockLength = (positionEnd - positionStart) + 3;
-
- if ((strstr(tempraw, "<!--") == nullptr) || (strstr(tempraw, "-->") == nullptr))
- break;
-
- /////////////////////////////////////////
-
- if (strstr(tempraw, "<!--") != nullptr)
- for (counter = 0; counter < BlockLength; counter++)
- tempraw[positionStart + counter] = ' ';
-
- if ((positionStart == 0) && (positionEnd == 0))
- break;
- if (positionStart > positionEnd)
- break;
-
- positionStart = 0;
- positionEnd = 0;
- }
-
- // ///////////////////////////
- positionStart = 0;
- positionEnd = 0;
-
- // 2//
- while (true) {
- Sleep(1); // avoid 100% CPU
- // /get start and end of block
-
- if (((strstr(tempraw, "<script")) != nullptr) || (strstr(tempraw, "<SCRIPT") != nullptr)) // does
- {
- if (strstr(tempraw, "<script") != nullptr)
- stringfrompos = strstr(tempraw, "<script");
- else
- stringfrompos = strstr(tempraw, "<SCRIPT");
-
- positionStart = stringfrompos - tempraw;
- }
-
- if (((strstr(tempraw, "</script")) != nullptr) || (strstr(tempraw, "</SCRIPT") != nullptr)) // does
- {
- if (strstr(tempraw, "<script") != nullptr)
- stringfrompos = strstr(tempraw, "</script");
- else
- stringfrompos = strstr(tempraw, "</SCRIPT");
-
- positionEnd = stringfrompos - tempraw;
- }
- BlockLength = (positionEnd - positionStart) + 9;
-
- if ((strstr(tempraw, "<script") != nullptr) && (strstr(tempraw, "</script") == nullptr))
- break;
-
- if ((strstr(tempraw, "<SCRIPT") != nullptr) && (strstr(tempraw, "</SCRIPT") == nullptr))
- break;
-
- ///////////////////////////////////////
-
- if (((strstr(tempraw, "<script")) != nullptr) || ((strstr(tempraw, "<SCRIPT")) != nullptr))
- for (counter = 0; counter < BlockLength; counter++)
- tempraw[positionStart + counter] = ' ';
-
- if ((positionStart == 0) && (positionEnd == 0))
- break;
- if (positionStart > positionEnd)
- break;
-
- positionStart = 0;
- positionEnd = 0;
- }
-
- // ////
- // 3//
- while (true)
- {
- Sleep(1); // avoid 100% CPU
- // /get start and end of block
-
- if (((strstr(tempraw, "<style")) != nullptr) || (strstr(tempraw, "<STYLE") != nullptr)) // does
- {
- if (strstr(tempraw, "<style") != nullptr)
- stringfrompos = strstr(tempraw, "<style");
- else
- stringfrompos = strstr(tempraw, "<STYLE");
-
- positionStart = stringfrompos - tempraw;
- }
-
- if (((strstr(tempraw, "</style")) != nullptr) || (strstr(tempraw, "</STYLE") != nullptr)) // does
- {
- if (strstr(tempraw, "<style") != nullptr)
- stringfrompos = strstr(tempraw, "</style");
- else
- stringfrompos = strstr(tempraw, "</STYLE");
-
- positionEnd = stringfrompos - tempraw;
- }
- BlockLength = (positionEnd - positionStart) + 8;
-
- if ((strstr(tempraw, "<style") != nullptr) && (strstr(tempraw, "</style") == nullptr))
- break;
-
- if ((strstr(tempraw, "<STYLE") != nullptr) && (strstr(tempraw, "</STYLE") == nullptr))
- break;
-
- ///////////////////////////////////////
- if (((strstr(tempraw, "<style")) != nullptr) || ((strstr(tempraw, "<STYLE")) != nullptr))
- for (counter = 0; counter < BlockLength; counter++)
- tempraw[positionStart + counter] = ' ';
-
- if ((positionStart == 0) && (positionEnd == 0))
- break;
- if (positionStart > positionEnd)
- break;
-
- positionStart = 0;
- positionEnd = 0;
- }
-
- // 4//
-
- while (true) {
- Sleep(1); // avoid 100% CPU
- // /get start and end of block
- if (strstr(tempraw, "{") != nullptr) // does tag exist?
- {
- stringfrompos = strstr(tempraw, "{");
- positionStart = stringfrompos - tempraw;
- }
-
- if (strstr(tempraw, "}") != nullptr) // does tag exist?
- {
- stringfrompos = strstr(tempraw, "}");
- positionEnd = stringfrompos - tempraw;
- }
- BlockLength = (positionEnd - positionStart) + 1;
-
- if ((strstr(tempraw, "}") == nullptr) || (strstr(tempraw, "{") == nullptr))
- break;
-
- /////////////////////////////////////////
- if (strstr(tempraw, "{") != nullptr)
- for (counter = 0; counter < BlockLength; counter++)
- tempraw[positionStart + counter] = ' ';
-
- if ((positionStart == 0) && (positionEnd == 0))
- break;
- if (positionStart > positionEnd)
- break;
-
- positionStart = 0;
- positionEnd = 0;
- }
-
- // ///////////////////////////
- positionStart = 0;
- positionEnd = 0;
-
- strncpy(truncated, tempraw, mir_strlen(truncated));
- free(tempraw);
-}
-
-/*****************************************************************************/
-void EraseSymbols(char *truncated)
-{
- int counter = 0;
- int position = 0, recpos = 0;
- char *stringfrompos;
-
- char *tempraw = (char*)malloc(MAXSIZE1);
- if (truncated)
- strncpy(tempraw, truncated, MAXSIZE1);
-
- // //////
- while (true) {
- Sleep(1); // avoid 100% CPU
-
- /**/
- counter = 0;
- if ((strstr(tempraw, "&#")) != nullptr) {
- stringfrompos = strstr(tempraw, "&#");
- position = stringfrompos - tempraw;
-
- while (true) {
- tempraw[position + counter] = ' ';
- counter++;
- if (counter > 20)
- break;
- if (tempraw[position + counter] == ' ')
- break;
- }
- if (tempraw[position + counter] == ';')
- tempraw[position + counter] = ' ';
- }
- if (recpos == position)
- break;
- recpos = position;
- }
-
- strncpy(truncated, tempraw, mir_strlen(truncated));
- free(tempraw);
-}
-
-/*****************************************************************************/
-void NumSymbols(char *truncated)
-{
- int counter = 0;
- int position = 0, recpos = 0;
- char*stringfrompos;
- char symbol[20];
- int character;
-
- char *tempraw = (char*)malloc(MAXSIZE1);
- if (truncated)
- strncpy(tempraw, truncated, MAXSIZE1);
-
- while (true) {
- Sleep(1); // avoid 100% CPU
-
- counter = 0;
-
- if ((strstr(tempraw, "&#")) != nullptr) {
- stringfrompos = strstr(tempraw, "&#");
- position = stringfrompos - tempraw;
-
- while (true) {
- if (counter > 1)
- symbol[counter - 2] = tempraw[position + counter];
-
- tempraw[position + counter] = ' ';
- counter++;
- if (counter > 20)
- break;
-
- if ((tempraw[position + counter] == ';')) {
- symbol[counter - 2] = '\0';
- character = atoi(symbol);
-
- if (character > 0 && character < 256)
- memset(&tempraw[position], character, 1);
- break;
- }
- }
-
- if (tempraw[position + counter] == ';')
- tempraw[position + counter] = ' ';
- }
- if (recpos == position)
- break;
- recpos = position;
- }
-
- strncpy(truncated, tempraw, mir_strlen(truncated));
- free(tempraw);
-}
-
-/*****************************************************************************/
-void FastTagFilter(char *truncated)
-{
- char *tempraw = (char*)malloc(MAXSIZE1);
- if (truncated)
- strncpy(tempraw, truncated, MAXSIZE1);
-
- for (int counter = 0; counter < mir_strlen(tempraw); counter++) {
- if (tempraw[counter] == '<') {
- while (tempraw[counter] != '>') {
- if (counter >= mir_strlen(tempraw))
- break;
-
- tempraw[counter] = ' ';
- counter++;
- }
- if (tempraw[counter] == '>')
- tempraw[counter] = ' ';
- }
- }
-
- strncpy(truncated, tempraw, mir_strlen(truncated));
- free(tempraw);
-}
-
-/*****************************************************************************/
-void RemoveInvis(char *truncated, int AmountWspcRem)
-{
- int erase = 0;
- int RemovalLevel = 0;
-
- char *tempraw = (char*)malloc(MAXSIZE1);
- if (truncated)
- strncpy(tempraw, truncated, MAXSIZE1);
-
- switch (AmountWspcRem) {
- case 1:
- RemovalLevel = 80; // small
- break;
- case 2:
- RemovalLevel = 30; // medium
- break;
- case 3:
- RemovalLevel = 10; // large
- break;
- }
-
- for (int counter = 0; counter < mir_strlen(tempraw); counter++) {
- if (AmountWspcRem != 0 && AmountWspcRem != 4) {
- if ((tempraw[counter] == '\n') || (tempraw[counter] == ' ') || (tempraw[counter] == '\r'))
- erase = erase + 1;
- else
- erase = 0;
-
- if (erase > RemovalLevel)
- tempraw[counter] = ' ';
- }
-
- if (AmountWspcRem == 4)
- if ((tempraw[counter] == '\n') || (tempraw[counter] == ' ') || (tempraw[counter] == '\r'))
- tempraw[counter] = ' ';
- } // end for
-
- strncpy(truncated, tempraw, mir_strlen(truncated));
- free(tempraw);
-}
-
-/*****************************************************************************/
-void RemoveTabs(char *truncated)
-{
- char *tempraw = (char*)malloc(MAXSIZE1);
- if (truncated)
- strncpy(tempraw, truncated, MAXSIZE1);
-
- for (int counter = 0; counter < mir_strlen(tempraw); counter++)
- if (tempraw[counter] == '\t')
- tempraw[counter] = ' ';
-
- strncpy(truncated, tempraw, mir_strlen(truncated));
- free(tempraw);
-}
-
-/*****************************************************************************/
-void Removewhitespace(char *truncated)
-{
- int counter2 = 0;
- int pos1 = 0, pos2 = 0;
-
- for (int counter = 0; counter < mir_strlen(truncated); counter++) {
- if (truncated[counter] == ' ' && truncated[counter + 1] == ' ') {
- pos1 = counter + 1;
- counter2 = counter;
-
- while (truncated[counter2] == ' ')
- counter2++;
-
- pos2 = counter2;
- strncpy(&truncated[pos1], &truncated[pos2], mir_strlen(&truncated[pos1]) - 1);
- } // end if
- } // end for
-}
-
-/*****************************************************************************/
-void Filter(char *truncated)
-{
- char tempraw[MAXSIZE1];
- strncpy(tempraw, truncated, _countof(tempraw));
-
- for (int counter = 0; counter < mir_strlen(tempraw); counter++)
- if ((tempraw[counter] == '\n') || (tempraw[counter] == '\r') || (tempraw[counter] == '\t'))
- strncpy(&tempraw[counter], &tempraw[counter + 1], mir_strlen(&tempraw[counter]) - 1);
-
- strncpy(truncated, tempraw, mir_strlen(truncated));
-}
diff --git a/plugins/WebView/src/webview_datawnd.cpp b/plugins/WebView/src/webview_datawnd.cpp
deleted file mode 100644
index f87b88a16e..0000000000
--- a/plugins/WebView/src/webview_datawnd.cpp
+++ /dev/null
@@ -1,514 +0,0 @@
-/*
-* A plugin for Miranda IM which displays web page text in a window Copyright
-* (C) 2005 Vincent Joyce.
-*
-* Miranda IM: the free icq client for MS Windows Copyright (C) 2000-2
-* Richard Hughes, Roland Rabien & Tristan Van de Vreede
-*
-* 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 "stdafx.h"
-#include "webview.h"
-
-/*****************************************************************************/
-INT_PTR CALLBACK DlgProcFind(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- static char Searchstr[128];
- static int loc;
- static int oldloc;
- static int startposition;
- static int OLDstartposition;
-
- HWND ParentHwnd = GetParent(hwndDlg);
-
- switch (msg) {
- case WM_INITDIALOG:
- TranslateDialogDefault(hwndDlg);
- SetWindowLongPtr(hwndDlg, GWLP_USERDATA, lParam);
- SetWindowText(hwndDlg, TranslateT("Find"));
- SendMessage(hwndDlg, WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_FIND)));
- return TRUE;
-
- case WM_COMMAND:
- switch (LOWORD(wParam)) {
- case IDC_OK: // find Next
- {
- char NewSearchstr[128];
- int location = 0;
- int startsel = 0, endsel = 0;
- char buff[MAXSIZE1];
-
- memset(&NewSearchstr, 0, sizeof(NewSearchstr));
-
- int len = GetWindowTextLength(GetDlgItem(ParentHwnd, IDC_DATA));
-
- char *tempbuffer = (char*)malloc(len + 2);
-
- GetDlgItemTextA(ParentHwnd, IDC_DATA, tempbuffer, len);
- strncpy(buff, tempbuffer, _countof(buff));
- free(tempbuffer);
-
- Filter(buff);
- CharUpperBuffA(buff, (int)mir_strlen(buff));
-
- GetDlgItemTextA(hwndDlg, IDC_FINDWHAT, NewSearchstr, _countof(NewSearchstr));
- CharUpperBuffA(NewSearchstr, (int)mir_strlen(NewSearchstr));
-
- OLDstartposition = startposition;
-
- if ((strstr(Searchstr, NewSearchstr)) != nullptr)
- startposition = loc + (int)mir_strlen(Searchstr);
- else {
- oldloc = 0;
- startposition = 0;
- }
-
- mir_strcpy(Searchstr, NewSearchstr);
-
- if (!(startposition > (int)mir_strlen(buff)))
- location = (strstr(buff + startposition, NewSearchstr)) - buff;
-
- oldloc = loc;
- loc = location;
-
- if (loc == 0) {
- ShowWindow(GetDlgItem(hwndDlg, IDC_SEARCH_COMPLETE), SW_SHOW);
- loc = (strstr(buff, NewSearchstr)) - buff;
- startsel = loc;
- endsel = loc + (int)mir_strlen(NewSearchstr);
- oldloc = 0;
- startposition = 0;
- }
- else {
- ShowWindow(GetDlgItem(hwndDlg, IDC_SEARCH_COMPLETE), SW_HIDE);
- startsel = loc;
- endsel = loc + (int)mir_strlen(NewSearchstr);
- }
-
- CHARRANGE sel2 = { startsel, endsel };
- SendDlgItemMessage(ParentHwnd, IDC_DATA, EM_EXSETSEL, 0, (LPARAM)&sel2);
- SetFocus(GetDlgItem(ParentHwnd, IDC_DATA));
- }
- return TRUE;
-
- case WM_DESTROY:
- case IDC_CANCEL:
- EnableWindow(GetDlgItem(ParentHwnd, IDC_FIND_BUTTON), 1);
- EnableWindow(ParentHwnd, 1);
- DestroyWindow(hwndDlg);
- }
- break;
- }
- return FALSE;
-}
-
-/*****************************************************************************/
-
-static wchar_t tszSizeString[] = L"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
-
-static MCONTACT FindContactByUrl(HWND hwndDlg)
-{
- MCONTACT res = NULL;
- wchar_t urltext[300], titlebartxt[300];
- int contactcount = 0;
-
- GetDlgItemText(hwndDlg, IDC_OPEN_URL, urltext, _countof(urltext));
- GetWindowText(hwndDlg, titlebartxt, _countof(titlebartxt));
-
- for (auto &hContact : Contacts(MODULENAME)) {
- ptrW db1(g_plugin.getWStringA(hContact, URL_KEY));
- ptrW db2(g_plugin.getWStringA(hContact, PRESERVE_NAME_KEY));
-
- if (!mir_wstrcmp(urltext, db1) && !mir_wstrcmp(titlebartxt, db2)) {
- contactcount++;
- if (contactcount > 1) {
- MessageBox(nullptr, TranslateT("ERROR: You have two or more Webview contacts with the same URL and contact name."), _A2W(MODULENAME), MB_OK);
- return NULL;
- }
- res = hContact;
- }
- }
- return res;
-}
-
-INT_PTR CALLBACK DlgProcDisplayData(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- DBVARIANT dbv;
- RECT rc;
- wchar_t url[300];
- MCONTACT hContact;
-
- switch (msg) {
- case WM_INITDIALOG:
- TranslateDialogDefault(hwndDlg);
- {
- MCONTACT hContact2 = lParam;
-
- SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)hContact2);
- WindowList_Add(hWindowList, hwndDlg, hContact2);
-
- url[0] = '\0';
- if (!g_plugin.getWString(hContact2, URL_KEY, &dbv)) {
- wcsncpy_s(url, dbv.pwszVal, _TRUNCATE);
- db_free(&dbv);
- }
- SetDlgItemText(hwndDlg, IDC_OPEN_URL, FixButtonText(url, _countof(url)));
-
- char preservename[100];
- if (!g_plugin.getString(hContact2, PRESERVE_NAME_KEY, &dbv)) {
- strncpy_s(preservename, _countof(preservename), dbv.pszVal, _TRUNCATE);
- db_free(&dbv);
- }
- else preservename[0] = 0;
- SetWindowTextA(hwndDlg, preservename);
-
- SendMessage(hwndDlg, WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_SITE)));
-
- // //////
- COLORREF colour = BackgoundClr;
- COLORREF txtcolor;
- SendDlgItemMessage(hwndDlg, IDC_DATA, EM_SETBKGNDCOLOR, 0, colour);
-
- SendDlgItemMessage(hwndDlg, IDC_UPDATE_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM)LoadImage(g_plugin.getInst(), MAKEINTRESOURCE(IDI_UPDATE), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0));
- SendDlgItemMessage(hwndDlg, IDC_UPDATE_BUTTON, BUTTONADDTOOLTIP, (WPARAM)TranslateT("Update data"), BATF_UNICODE);
-
- SendDlgItemMessage(hwndDlg, IDC_FIND_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM)LoadImage(g_plugin.getInst(), MAKEINTRESOURCE(IDI_FIND), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0));
- SendDlgItemMessage(hwndDlg, IDC_FIND_BUTTON, BUTTONADDTOOLTIP, (WPARAM)TranslateT("Find"), BATF_UNICODE);
-
- SendDlgItemMessage(hwndDlg, IDC_OPTIONS_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM)LoadImage(g_plugin.getInst(), MAKEINTRESOURCE(IDI_OPTIONS), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0));
- SendDlgItemMessage(hwndDlg, IDC_OPTIONS_BUTTON, BUTTONADDTOOLTIP, (WPARAM)TranslateT("Contact options"), BATF_UNICODE);
-
- SendDlgItemMessage(hwndDlg, IDC_ALERT_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM)LoadImage(g_plugin.getInst(), MAKEINTRESOURCE(IDI_ALERT), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0));
- SendDlgItemMessage(hwndDlg, IDC_ALERT_BUTTON, BUTTONADDTOOLTIP, (WPARAM)TranslateT("Alert options"), BATF_UNICODE);
-
- SendDlgItemMessage(hwndDlg, IDC_STOP, BM_SETIMAGE, IMAGE_ICON, (LPARAM)LoadImage(g_plugin.getInst(), MAKEINTRESOURCE(IDI_STOP), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0));
- SendDlgItemMessage(hwndDlg, IDC_STOP, BUTTONADDTOOLTIP, (WPARAM)TranslateT("Stop processing"), BATF_UNICODE);
-
- SendDlgItemMessage(hwndDlg, IDC_OPEN_URL, BUTTONADDTOOLTIP, (WPARAM)TranslateT("Click here to open this URL in a browser window."), BATF_UNICODE);
-
- if (!g_plugin.getByte(hContact2, ON_TOP_KEY)) {
- SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM)LoadImage(g_plugin.getInst(), MAKEINTRESOURCE(IDI_UNSTICK), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0));
- SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BUTTONADDTOOLTIP, (WPARAM)TranslateT("Stick to the front"), BATF_UNICODE);
- }
- else {
- SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM)LoadImage(g_plugin.getInst(), MAKEINTRESOURCE(IDI_STICK), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0));
- SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BUTTONADDTOOLTIP, (WPARAM)TranslateT("Disable stick to the front"), BATF_UNICODE);
- }
-
- SendDlgItemMessage(hwndDlg, IDC_DATA, WM_SETFONT, (WPARAM)h_font, 1);
-
- txtcolor = TextClr;
-
- SetDlgItemText(hwndDlg, IDC_DATA, L"");
-
- InvalidateRect(hwndDlg, nullptr, 1);
-
- SendDlgItemMessage(hwndDlg, IDC_DATA, EM_AUTOURLDETECT, 1, 0);
- int mask = (int)SendDlgItemMessage(hwndDlg, IDC_DATA, EM_GETEVENTMASK, 0, 0);
-
- SendDlgItemMessage(hwndDlg, IDC_DATA, EM_SETEVENTMASK, 0, mask | ENM_LINK | ENM_MOUSEEVENTS);
-
- SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BUTTONSETASFLATBTN, 0, 0);
- SendDlgItemMessage(hwndDlg, IDC_UPDATE_BUTTON, BUTTONSETASFLATBTN, 0, 0);
- SendDlgItemMessage(hwndDlg, IDC_FIND_BUTTON, BUTTONSETASFLATBTN, 0, 0);
- SendDlgItemMessage(hwndDlg, IDC_OPTIONS_BUTTON, BUTTONSETASFLATBTN, 0, 0);
- SendDlgItemMessage(hwndDlg, IDC_ALERT_BUTTON, BUTTONSETASFLATBTN, 0, 0);
- SendDlgItemMessage(hwndDlg, IDC_STOP, BUTTONSETASFLATBTN, 0, 0);
-
- SendDlgItemMessage(hwndDlg, IDC_OPEN_URL, BUTTONSETASFLATBTN, 0, 0);
-
- HDC hdc = GetDC(GetDlgItem(hwndDlg, IDC_STATUSBAR));
- SelectObject(hdc, (HFONT)SendDlgItemMessage(hwndDlg, IDC_STATUSBAR, WM_GETFONT, 0, 0));
- SIZE textSize;
- GetTextExtentPoint32(hdc, tszSizeString, _countof(tszSizeString), &textSize);
- int partWidth[2] = { textSize.cx, -1 };
- ReleaseDC(GetDlgItem(hwndDlg, IDC_STATUSBAR), hdc);
-
- SendDlgItemMessage(hwndDlg, IDC_STATUSBAR, SB_SETPARTS, _countof(partWidth), (LPARAM)partWidth);
- SendDlgItemMessage(hwndDlg, IDC_STATUSBAR, SB_SETTEXT, 1 | SBT_OWNERDRAW, 0);
-
- if (g_plugin.getByte(SAVE_INDIVID_POS_KEY, 0))
- Utils_RestoreWindowPosition(hwndDlg, hContact2, MODULENAME, "WV");
- }
- break;
-
- case WM_NOTIFY:
- switch (((NMHDR *)lParam)->code) {
- case EN_MSGFILTER:
- switch (((MSGFILTER *)lParam)->msg) {
- case WM_RBUTTONUP:
- {
- POINT pt;
- CHARRANGE sel, all = { 0, -1 };
-
- HMENU hSubMenu = GetSubMenu(hMenu, 0);
- TranslateMenu(hSubMenu);
- SendMessage(((NMHDR *)lParam)->hwndFrom, EM_EXGETSEL, 0, (LPARAM)& sel);
-
- EnableMenuItem(hSubMenu, IDM_COPY, MF_ENABLED);
- EnableMenuItem(hSubMenu, IDM_CUT, MF_ENABLED);
- EnableMenuItem(hSubMenu, IDM_DELETE, MF_ENABLED);
-
- if (sel.cpMin == sel.cpMax) {
- EnableMenuItem(hSubMenu, IDM_COPY, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(hSubMenu, IDM_CUT, MF_BYCOMMAND | MF_GRAYED);
- EnableMenuItem(hSubMenu, IDM_DELETE, MF_BYCOMMAND | MF_GRAYED);
- }
- pt.x = (short)LOWORD(((ENLINK *)lParam)->lParam);
- pt.y = (short)HIWORD(((ENLINK *)lParam)->lParam);
- ClientToScreen(((NMHDR *)lParam)->hwndFrom, &pt);
- switch (TrackPopupMenu(hSubMenu, TPM_RETURNCMD, pt.x, pt.y, 0, hwndDlg, nullptr)) {
- case IDM_COPY:
- SendMessage(((NMHDR *)lParam)->hwndFrom, WM_COPY, 0, 0);
- break;
-
- case IDM_COPYALL:
- SendMessage(((NMHDR *)lParam)->hwndFrom, EM_EXSETSEL, 0, (LPARAM)& all);
- SendMessage(((NMHDR *)lParam)->hwndFrom, WM_COPY, 0, 0);
- SendMessage(((NMHDR *)lParam)->hwndFrom, EM_EXSETSEL, 0, (LPARAM)& sel);
- break;
-
- case IDM_SELECTALL:
- SendMessage(((NMHDR *)lParam)->hwndFrom, EM_EXSETSEL, 0, (LPARAM)& all);
- break;
-
- case IDM_CUT:
- SendMessage(((NMHDR *)lParam)->hwndFrom, WM_CUT, 0, 0);
- break;
-
- case IDM_PASTE:
- SendMessage(((NMHDR *)lParam)->hwndFrom, WM_PASTE, 0, 0);
- break;
-
- case IDM_DELETE:
- SendMessage(((NMHDR *)lParam)->hwndFrom, WM_CLEAR, 0, 0);
- break;
-
- case IDM_CLEAR_ALL:
- SetDlgItemTextA(hwndDlg, IDC_DATA, "");
- SetFocus(GetDlgItem(hwndDlg, IDC_DATA));
- break;
- }
- }
- }
- break;
-
- case EN_LINK:
- switch (((ENLINK *)lParam)->msg) {
- case WM_RBUTTONDOWN:
- case WM_LBUTTONUP:
- CHARRANGE sel;
- SendDlgItemMessage(hwndDlg, IDC_DATA, EM_EXGETSEL, 0, (LPARAM)& sel);
- if (sel.cpMin != sel.cpMax)
- break;
-
- TEXTRANGEA tr;
- tr.chrg = ((ENLINK *)lParam)->chrg;
- tr.lpstrText = (char*)malloc(tr.chrg.cpMax - tr.chrg.cpMin + 8);
-
- SendDlgItemMessage(hwndDlg, IDC_DATA, EM_GETTEXTRANGE, 0, (LPARAM)& tr);
- if (strchr(tr.lpstrText, '@') != nullptr && strchr(tr.lpstrText, ':') == nullptr && strchr(tr.lpstrText, '/') == nullptr) {
- memmove(tr.lpstrText + 7, tr.lpstrText, tr.chrg.cpMax - tr.chrg.cpMin + 1);
- memcpy(tr.lpstrText, "mailto:", 7);
- }
-
- Utils_OpenUrl(tr.lpstrText);
- SetFocus(GetDlgItem(hwndDlg, IDC_DATA));
-
- free(tr.lpstrText);
- break;
- }
- }
- break; // notify
-
- case WM_COMMAND:
- switch (LOWORD(wParam)) {
- case IDC_OPEN_URL:
- GetDlgItemText(hwndDlg, IDC_OPEN_URL, url, _countof(url));
- Utils_OpenUrlW(url);
- g_plugin.setWord(wParam, "Status", ID_STATUS_ONLINE);
- break;
-
- case IDC_UPDATE_BUTTON:
- if (hContact = FindContactByUrl(hwndDlg)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_UPDATE_BUTTON), 0);
- UpdateMenuCommand(wParam, lParam, hContact);
- }
- break;
-
- case IDC_STOP:
- if (hContact = FindContactByUrl(hwndDlg))
- g_plugin.setByte(hContact, STOP_KEY, 1);
- break;
-
- case IDC_STICK_BUTTON:
- if (hContact = FindContactByUrl(hwndDlg))
- OnTopMenuCommand(wParam, lParam, hContact);
- {
- wchar_t *ptszToolTip;
- HWND hTopmost;
- if (!g_plugin.getByte(hContact, ON_TOP_KEY, 0)) {
- hTopmost = HWND_NOTOPMOST;
- ptszToolTip = TranslateT("Stick to the front");
- }
- else {
- hTopmost = HWND_TOPMOST;
- ptszToolTip = TranslateT("Disable stick to the front");
- }
- SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM)LoadImage(g_plugin.getInst(), MAKEINTRESOURCE(IDI_UNSTICK), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0));
- SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BUTTONADDTOOLTIP, (WPARAM)ptszToolTip, BATF_UNICODE);
- SetWindowPos(hwndDlg, hTopmost, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
- }
- break;
-
- case IDC_FIND_BUTTON:
- {
- HWND hwndFind = CreateDialogParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_FIND), hwndDlg, DlgProcFind, (LPARAM)wParam);
- ShowWindow(hwndFind, SW_SHOW);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FIND_BUTTON), 0);
- }
- break;
-
- case IDC_OPTIONS_BUTTON:
- if (hContact = FindContactByUrl(hwndDlg))
- DialogBoxParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_CONTACT_OPT), hwndDlg, DlgProcContactOpt, hContact);
- break;
-
- case IDC_ALERT_BUTTON:
- if (hContact = FindContactByUrl(hwndDlg))
- DialogBoxParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_ALRT_OPT), hwndDlg, DlgProcAlertOpt, hContact);
- break;
-
- case IDOK:
- case IDCANCEL:
- if (hwndDlg != nullptr)
- DestroyWindow(hwndDlg);
- return TRUE;
- }
- break;
-
- case WM_CLOSE:
- if (Yposition == -32000)
- Yposition = 100;
-
- if (Xposition == -32000)
- Xposition = 100;
-
- SavewinSettings();
-
- if (hContact = FindContactByUrl(hwndDlg))
- Utils_SaveWindowPosition(hwndDlg, hContact, MODULENAME, "WV");
-
- if (hwndDlg != nullptr)
- DestroyWindow(hwndDlg);
- return 0;
-
- case WM_DESTROY:
- WindowList_Remove(hWindowList, hwndDlg);
- return 0;
-
- case WM_SIZE:
- Utils_ResizeDialog(hwndDlg, g_plugin.getInst(), MAKEINTRESOURCEA(IDD_DISPLAY_DATA), DataDialogResize);
- InvalidateRect(hwndDlg, nullptr, TRUE);
-
- // global
- GetWindowRect(hwndDlg, &rc);
- Xposition = rc.left;
- Yposition = rc.top;
- WindowHeight = rc.bottom - rc.top;
- WindowWidth = rc.right - rc.left;
- break;
-
- case WM_MOVE:
- if (!IsIconic(hwndDlg) && !IsZoomed(hwndDlg)) {
- GetWindowRect(hwndDlg, &rc);
- // global
- Xposition = rc.left;
- Yposition = rc.top;
- WindowHeight = rc.bottom - rc.top;
- WindowWidth = rc.right - rc.left;
-
- if ((GetAsyncKeyState(VK_CONTROL) & 0x8000))
- break;
-
- ValidatePosition(hwndDlg);
- }
- }
- return FALSE;
-}
-
-/*****************************************************************************/
-
-int DataDialogResize(HWND, LPARAM, UTILRESIZECONTROL *urc)
-{
- switch (urc->wId) {
- case IDC_OPEN_URL:
- return RD_ANCHORX_WIDTH | RD_ANCHORY_TOP;
- case IDC_DATA:
- return RD_ANCHORX_WIDTH | RD_ANCHORY_HEIGHT;
- case IDC_STATUSBAR:
- return RD_ANCHORX_WIDTH | RD_ANCHORX_RIGHT;
-
- }
- return RD_ANCHORX_LEFT | RD_ANCHORY_TOP;
-}
-
-/*****************************************************************************/
-
-void SavewinSettings(void)
-{
- if (Yposition == -32000)
- Yposition = 100;
-
- if (Xposition == -32000)
- Xposition = 100;
-
- g_plugin.setDword(Xpos_WIN_KEY, Xposition);
- g_plugin.setDword(Ypos_WIN_KEY, Yposition);
-
- g_plugin.setDword(BG_COLOR_KEY, BackgoundClr);
- g_plugin.setDword(TXT_COLOR_KEY, TextClr);
- g_plugin.setDword(WIN_HEIGHT_KEY, WindowHeight);
- g_plugin.setDword(WIN_WIDTH_KEY, WindowWidth);
-
-}
-
-/*****************************************************************************/
-void ValidatePosition(HWND)
-{
- RECT r;
- SystemParametersInfo(SPI_GETWORKAREA, 0, &r, 0);
-
- POINT pt = { 0, 0 };
- HMONITOR hMonitor = MonitorFromPoint(pt, MONITOR_DEFAULTTONEAREST); // always
-
- MONITORINFO monitorInfo;
- monitorInfo.cbSize = sizeof(MONITORINFO);
- if (GetMonitorInfo(hMonitor, &monitorInfo))
- memcpy(&r, &monitorInfo.rcMonitor, sizeof(RECT));
-
- // /window going off right of screen*
- if (Xposition + WindowWidth >= r.right)
- Xposition = r.right - WindowWidth;
-
- // window going off bottom of screen
- if (Yposition + WindowHeight >= r.bottom)
- Yposition = r.bottom - WindowHeight;
-
- // window going off left of screen
- if (Xposition >= r.right)
- Xposition = 0;
-}
diff --git a/plugins/WebView/src/webview_getdata.cpp b/plugins/WebView/src/webview_getdata.cpp
deleted file mode 100644
index c77d994379..0000000000
--- a/plugins/WebView/src/webview_getdata.cpp
+++ /dev/null
@@ -1,511 +0,0 @@
-/*
-* A plugin for Miranda IM which displays web page text in a window Copyright
-* (C) 2005 Vincent Joyce.
-*
-* Miranda IM: the free icq client for MS Windows Copyright (C) 2000-2
-* Richard Hughes, Roland Rabien & Tristan Van de Vreede
-*
-* 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 "stdafx.h"
-#include "webview.h"
-
-int Startingup = 1;
-int AlreadyDownloading = 0;
-
-/*******************/
-void GetData(void *param)
-{
- MCONTACT hContact = (DWORD_PTR)param;
- int statpos = 0, dispos = 0, statposend = 0;
- char*pos;
- DBVARIANT dbv;
- char tempstring[300], tempstring2[300];
- int MallocSize = 0;
- int DownloadSuccess = 0;
- char*raw;
- char truncated[MAXSIZE1];
- char truncated2[MAXSIZE2];
- int trunccount = 0;
- char url[300];
- unsigned long downloadsize = 0;
- int AmountWspcRem = 0;
- static char contactname[100];
- int TherewasAlert = 0;
- int PosButnClick = 0;
- char tstr[128];
- static char timestring[128];
- int eventIndex = 0;
- int location = 0;
- int location2 = 0;
-
- if (Startingup)
- Sleep(2000);
-
- HWND hwndDlg = (WindowList_Find(hWindowList, hContact));
-
- Startingup = 0;
-
- memset(&url, 0, sizeof(url));
- memset(&contactname, 0, sizeof(contactname));
- memset(&tempstring, 0, sizeof(tempstring));
- memset(&tempstring2, 0, sizeof(tempstring2));
- memset(&dbv, 0, sizeof(dbv));
- memset(&tstr, 0, sizeof(tstr));
- memset(&timestring, 0, sizeof(timestring));
-
- g_plugin.setByte(hContact, STOP_KEY, 0);
-
- if (g_plugin.getString(hContact, PRESERVE_NAME_KEY, &dbv)) {
- if (!db_get_s(hContact, "CList", "MyHandle", &dbv)) {
- g_plugin.setString(hContact, PRESERVE_NAME_KEY, dbv.pszVal);
- db_free(&dbv);
- }
- }
-
- if (!g_plugin.getString(hContact, PRESERVE_NAME_KEY, &dbv)) {
- strncpy_s(contactname, _countof(contactname), dbv.pszVal, _TRUNCATE);
- db_free(&dbv);
- }
-
- url[0] = '\0';
-
- if (!Startingup)
- g_plugin.setByte(HAS_CRASHED_KEY, 1);
-
- if (!g_plugin.getString(hContact, START_STRING_KEY, &dbv)) {
- strncpy_s(tempstring, _countof(tempstring), dbv.pszVal, _TRUNCATE);
- db_free(&dbv);
- }
-
- if (!g_plugin.getString(hContact, END_STRING_KEY, &dbv)) {
- strncpy_s(tempstring2, _countof(tempstring2), dbv.pszVal, _TRUNCATE);
- db_free(&dbv);
- }
-
- if (!g_plugin.getString(hContact, URL_KEY, &dbv)) {
- strncpy_s(url, _countof(url), dbv.pszVal, _TRUNCATE);
- db_free(&dbv);
- }
-
- if (mir_strlen(url) < 3)
- WErrorPopup(hContact, TranslateT("URL not supplied"));
-
- NETLIBHTTPREQUEST nlhr = { sizeof(nlhr) };
- nlhr.requestType = REQUEST_GET;
- nlhr.flags = NLHRF_DUMPASTEXT;
- nlhr.szUrl = url;
- nlhr.headersCount = 2;
-
- NETLIBHTTPHEADER headers[2];
- headers[0].szName = "User-Agent";
- headers[0].szValue = NETLIB_USER_AGENT;
-
- headers[1].szName = "Content-Length";
- headers[1].szValue = nullptr;
-
- nlhr.headers = headers;
-
- if ( g_plugin.getByte(NO_PROTECT_KEY, 0)) // disable
- AlreadyDownloading = 0;
-
- // //try site////
- if (!AlreadyDownloading) { // not already downloading
- if (IsWindowEnabled(GetDlgItem(hwndDlg, IDC_UPDATE_BUTTON)))
- PosButnClick = 0;
- else
- PosButnClick = 1;
- EnableWindow(GetDlgItem(hwndDlg, IDC_UPDATE_BUTTON), 1);
-
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Download in progress, please wait..."));
- db_set_ws(hContact, "CList", "StatusMsg", TranslateT("Updating..."));
- g_plugin.setWord(hContact, "Status", ID_STATUS_DND); // download
-
- NETLIBHTTPREQUEST *nlhrReply = Netlib_HttpTransaction(hNetlibUser, &nlhr);
- if (nlhrReply) {
- if (nlhrReply->resultCode < 200 || nlhrReply->resultCode >= 300) {
- g_plugin.setWord(hContact, "Status", ID_STATUS_AWAY);
-
- wchar_t *statusText = TranslateT("The server replied with a failure code");
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, statusText);
- WErrorPopup(hContact, statusText);
- db_set_ws(hContact, "CList", "StatusMsg", statusText);
- }
- if (nlhrReply->dataLength) {
- trunccount = 0;
- downloadsize = (ULONG)mir_strlen(nlhrReply->pData);
- strncpy_s(truncated2, nlhrReply->pData, _TRUNCATE);
- AlreadyDownloading = 1;
- } // END DATELENGTH
- } // END REPLY
-
- if (!nlhrReply) {
- g_plugin.setWord(hContact, "Status", ID_STATUS_NA);
-
- wchar_t *statusText = TranslateT("The server is down or lagging.");
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, statusText);
- WErrorPopup(hContact, statusText);
- db_set_ws(hContact, "CList", "StatusMsg", statusText);
- }
-
- if (!(nlhrReply))
- DownloadSuccess = 0;
-
- if ((nlhrReply) && (nlhrReply->resultCode < 200 || nlhrReply->resultCode >= 300))
- DownloadSuccess = 0;
- else if (nlhrReply)
- DownloadSuccess = 1;
-
- Netlib_FreeHttpRequest(nlhrReply);
-
- if (DownloadSuccess)
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Download successful; about to process data..."));
-
- // download successful
- if (DownloadSuccess) {
- // all the site
- if (g_plugin.getByte(hContact, U_ALLSITE_KEY, 0) == 1)
- mir_strncpy(truncated, truncated2, MAXSIZE1);
- else { // use start and end string
- // putting data into string
- if (((strstr(truncated2, tempstring)) != nullptr) && ((strstr(truncated2, tempstring2)) != nullptr)) {
- // start string
- pos = strstr(truncated2, tempstring);
- statpos = pos - truncated2;
-
- memset(&pos, 0, sizeof(pos)); // XXX: looks bad.
- // end string
- pos = strstr(truncated2, tempstring2);
- statposend = pos - truncated2 + (int)mir_strlen(tempstring2);
-
- if (statpos > statposend) {
- memset(&truncated2, ' ', statpos);
- memset(&pos, 0, sizeof(pos)); // XXX: looks bad.
- pos = strstr(truncated2, tempstring2);
- statposend = pos - truncated2 + (int)mir_strlen(tempstring2);
- }
- if (statpos < statposend) {
- memset(&raw, 0, sizeof(raw));
-
- // get size for malloc
- MallocSize = statposend - statpos;
- raw = (char *) malloc(MallocSize + 1);
-
- // start string
- pos = strstr(truncated2, tempstring);
- statpos = pos - truncated2;
-
- // end string
- pos = strstr(truncated2, tempstring2);
- statposend = pos - truncated2 + (int)mir_strlen(tempstring2);
-
- if (statpos > statposend) {
- memset(&truncated2, ' ', statpos);
- memset(&pos, 0, sizeof(pos)); // XXX
- pos = strstr(truncated2, tempstring2);
- statposend = pos - truncated2 + (int)mir_strlen(tempstring2);
- }
- dispos = 0;
-
- strncpy(raw, &truncated2[statpos], MallocSize);
- raw[MallocSize] = '\0';
-
- trunccount = 0;
-
- mir_strncpy(truncated, raw, MAXSIZE1);
-
- free(raw);
-
- DownloadSuccess = 1;
- }
- else if (g_plugin.getByte(hContact, U_ALLSITE_KEY, 0) == 0) {
- wchar_t *szStatusText = TranslateT("Invalid search parameters.");
- WErrorPopup(hContact, szStatusText);
-
- DownloadSuccess = 0;
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, szStatusText);
- g_plugin.setWord(hContact, "Status", ID_STATUS_AWAY);
- }
- } // end putting data into string
- } // end use start and end strings
- } // end download success
-
- if (DownloadSuccess) { // download success
- if (statpos == 0 && statposend == 0) {
- if (g_plugin.getByte(hContact, U_ALLSITE_KEY, 0) == 0) {
- wchar_t *statusText = TranslateT("Both search strings not found or strings not set.");
- WErrorPopup(hContact, statusText);
- db_set_ws(hContact, "CList", "StatusMsg", statusText);
-
- DownloadSuccess = 0;
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, statusText);
- TherewasAlert = ProcessAlerts(hContact, _T2A(statusText), contactname, contactname, 1);
- g_plugin.setWord(hContact, "Status", ID_STATUS_AWAY);
- }
- }
- } // end download success
-
- if (DownloadSuccess) { // download success
- char timeprefix[32];
- char temptime1[32];
- char timeat[16];
- char temptime2[32];
- char temptime[128];
- time_t ftime;
- struct tm *nTime;
-
- if (!g_plugin.getString(hContact, PRESERVE_NAME_KEY, &dbv)) {
- memset(&temptime, 0, sizeof(temptime));
- memset(&tstr, 0, sizeof(tstr));
- ftime = time(0);
- nTime = localtime(&ftime);
- // 12 hour
- if (g_plugin.getByte(hContact, USE_24_HOUR_KEY, 0) == 0)
- strftime(temptime, 128, "(%b %d,%I:%M %p)", nTime);
- // 24 hour
- if (g_plugin.getByte(hContact, USE_24_HOUR_KEY, 0) == 1)
- strftime(temptime, 128, "(%b %d,%H:%M:%S)", nTime);
-
- if (g_plugin.getByte(hContact, CONTACT_PREFIX_KEY, 1) == 1)
- mir_snprintf(tstr, "%s %s", temptime, dbv.pszVal);
- if (g_plugin.getByte(hContact, CONTACT_PREFIX_KEY, 1) == 0)
- mir_snprintf(tstr, "%s %s", dbv.pszVal, temptime);
- db_free(&dbv);
- }
- else {
- db_get_ws(hContact, "CList", "MyHandle", &dbv);
- memset(&temptime, 0, sizeof(temptime));
- memset(&tstr, 0, sizeof(tstr));
- ftime = time(0);
- nTime = localtime(&ftime);
- // 12 hour
- if (g_plugin.getByte(hContact, USE_24_HOUR_KEY, 0) == 0)
- strftime(temptime, 128, "(%b %d,%I:%M %p)", nTime);
- // 24 hour
- if (g_plugin.getByte(hContact, USE_24_HOUR_KEY, 0) == 1)
- strftime(temptime, 128, "(%b %d,%H:%M:%S)", nTime);
-
- g_plugin.setWString(hContact, PRESERVE_NAME_KEY, dbv.pwszVal);
- if (g_plugin.getByte(hContact, CONTACT_PREFIX_KEY, 1) == 1)
- mir_snprintf(tstr, "%s %s", temptime, dbv.pszVal);
- if (g_plugin.getByte(hContact, CONTACT_PREFIX_KEY, 1) == 0)
- mir_snprintf(tstr, "%s %s", dbv.pszVal, temptime);
- db_free(&dbv);
- }
-
- ftime = time(0);
- nTime = localtime(&ftime);
-
- strncpy_s(timeprefix, _countof(timeprefix), Translate("Last updated on"), _TRUNCATE);
- strncpy_s(timeat, _countof(timeat), Translate("at the time"), _TRUNCATE);
- strftime(temptime1, 32, " %a, %b %d, %Y ", nTime);
- strftime(temptime2, 32, " %I:%M %p.", nTime);
- mir_snprintf(timestring, " %s %s%s%s", timeprefix, temptime1, timeat, temptime2);
- } // end download success
-
- if (DownloadSuccess) {
- TherewasAlert = ProcessAlerts(hContact, truncated, tstr, contactname, 0);
-
- // get range of text to be highlighted when part of change changes
- if (TherewasAlert) {
- // ////////////////////////
- static char buff[MAXSIZE1];
- char Alerttempstring[300], Alerttempstring2[300];
-
- eventIndex = g_plugin.getByte(hContact, EVNT_INDEX_KEY, 0);
- if (eventIndex == 2) {
- strncpy(buff, truncated, _countof(buff));
- Filter(buff);
-
- if (!g_plugin.getString(hContact, ALRT_S_STRING_KEY, &dbv)) {
- strncpy_s(Alerttempstring, _countof(Alerttempstring), dbv.pszVal, _TRUNCATE);
- db_free(&dbv);
- }
- if (!g_plugin.getString(hContact, ALRT_E_STRING_KEY, &dbv)) {
- strncpy_s(Alerttempstring2, _countof(Alerttempstring2), dbv.pszVal, _TRUNCATE);
- db_free(&dbv);
- }
-
- // putting data into string
- if (((strstr(buff, Alerttempstring)) != nullptr) && ((strstr(buff, Alerttempstring2)) != nullptr)) {
- location = (strstr(buff, Alerttempstring)) - buff;
- location2 = (strstr(buff, Alerttempstring2)) - buff;
- }
- }
- }
-
- if ((((strstr(truncated2, tempstring)) != nullptr) && ((strstr(truncated2, tempstring2)) != nullptr) && (g_plugin.getByte(hContact, U_ALLSITE_KEY, 0) == 0)) || (g_plugin.getByte(hContact, U_ALLSITE_KEY, 0) == 1)) {
- RemoveTabs(truncated);
-
- if ( g_plugin.getByte(hContact, CLEAR_DISPLAY_KEY, 0)) {
- SendToRichEdit(hwndDlg, truncated, TextClr, BackgoundClr);
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Processing data (Stage 1)"));
-
- if (g_plugin.getByte(hContact, STOP_KEY, 1) == 1) {
-LBL_Stop: wchar_t *statusText = TranslateT("Processing data stopped by user.");
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, statusText);
- g_plugin.setByte(hContact, STOP_KEY, 0);
- g_plugin.setWord(hContact, "Status", ID_STATUS_ONLINE);
- db_set_ws(hContact, "CList", "StatusMsg", statusText);
- AlreadyDownloading = 0;
- return;
- }
-
- CodetoSymbol(truncated);
- Sleep(100); // avoid 100% CPU
-
- SendToRichEdit(hwndDlg, truncated, TextClr, BackgoundClr);
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Processing data (Stage 2)"));
- if (g_plugin.getByte(hContact, STOP_KEY, 1) == 1)
- goto LBL_Stop;
-
- EraseBlock(truncated);
- Sleep(100); // avoid 100% CPU
-
- SendToRichEdit(hwndDlg, truncated, TextClr, BackgoundClr);
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Processing data (Stage 3)"));
- if (g_plugin.getByte(hContact, STOP_KEY, 1) == 1)
- goto LBL_Stop;
-
- FastTagFilter(truncated);
- Sleep(100); // avoid 100% CPU
-
- SendToRichEdit(hwndDlg, truncated, TextClr, BackgoundClr);
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Processing data (Stage 4)"));
- if (g_plugin.getByte(hContact, STOP_KEY, 1) == 1)
- goto LBL_Stop;
-
- NumSymbols(truncated);
- Sleep(100); // avoid 100% CPU
-
- SendToRichEdit(hwndDlg, truncated, TextClr, BackgoundClr);
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Processing data (Stage 5)"));
- if (g_plugin.getByte(hContact, STOP_KEY, 1) == 1)
- goto LBL_Stop;
-
- EraseSymbols(truncated);
- Sleep(100); // avoid 100% CPU
-
- SendToRichEdit(hwndDlg, truncated, TextClr, BackgoundClr);
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Processing data (Stage 6)"));
-
- AmountWspcRem = g_plugin.getByte(hContact, RWSPACE_KEY, 0);
- if (g_plugin.getByte(hContact, STOP_KEY, 1) == 1)
- goto LBL_Stop;
-
- RemoveInvis(truncated, AmountWspcRem);
- Sleep(100); // avoid 100% CPU
-
- SendToRichEdit(hwndDlg, truncated, TextClr, BackgoundClr);
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Processing data (Stage 7)"));
- if (g_plugin.getByte(hContact, STOP_KEY, 1) == 1)
- goto LBL_Stop;
-
- Removewhitespace(truncated);
-
- SendToRichEdit(hwndDlg, truncated, TextClr, BackgoundClr);
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Processing data (Stage 8)"));
-
- //data in popup
- if (TherewasAlert)
- if ( g_plugin.getByte(DATA_POPUP_KEY, 0))
- WAlertPopup(hContact, _A2T(truncated));
-
- if (g_plugin.getByte(hContact, STOP_KEY, 1) == 1)
- goto LBL_Stop;
-
- // removed any excess characters at the end.
- if ((truncated[mir_strlen(truncated) - 1] == truncated[mir_strlen(truncated) - 2]) && (truncated[mir_strlen(truncated) - 2] == truncated[mir_strlen(truncated) - 3])) {
- int counterx = 0;
-
- while (true) {
- counterx++;
- if (truncated[mir_strlen(truncated) - counterx] != truncated[mir_strlen(truncated) - 1]) {
- truncated[(mir_strlen(truncated) - counterx) + 2] = '\0';
- break;
- }
- }
- }
- }
- }
-
- if (TherewasAlert) {
- g_plugin.setWord(hContact, "Status", ID_STATUS_OCCUPIED);
- db_set_ws(hContact, "CList", "StatusMsg", TranslateT("Alert!"));
- }
- else {
- g_plugin.setWord(hContact, "Status", ID_STATUS_ONLINE);
- db_set_ws(hContact, "CList", "StatusMsg", TranslateT("Online"));
- }
- }
-
- if (g_plugin.getByte(hContact, U_ALLSITE_KEY, 0) == 0) {
- if (statpos > statposend)
- DownloadSuccess = 0;
- else if (statpos == 0 && statposend == 0)
- DownloadSuccess = 0;
- else
- DownloadSuccess = 1;
- }
-
- AlreadyDownloading = 0;
- } // end not already downloading
-
- if (AlreadyDownloading)
- SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("A site is already downloading, try again in a moment."));
-
- if (DownloadSuccess) { // download success
- char BytesString[128];
-
- // update window if the update only on alert option isn't ticked or
- // there was an alert or the update button was clicked
- if ((!(g_plugin.getByte(UPDATE_ONALERT_KEY, 0))) || (TherewasAlert == 1) || (PosButnClick == 1)) {
- SendToRichEdit(hwndDlg, truncated, TextClr, BackgoundClr);
-
- if (TherewasAlert) {
- // highlight text when part of change changes
- if (eventIndex == 2) {
- CHARRANGE sel2 = {location, location2};
-
- SendDlgItemMessage(hwndDlg, IDC_DATA, EM_EXSETSEL, 0, (LPARAM)&sel2);
- SetFocus(GetDlgItem(hwndDlg, IDC_DATA));
-
- DWORD HiBackgoundClr = g_plugin.getDword(BG_COLOR_KEY, Def_color_bg);
- DWORD HiTextClr = g_plugin.getDword(TXT_COLOR_KEY, Def_color_txt);
-
- CHARFORMAT2 Format;
- memset(&Format, 0, sizeof(Format));
- Format.cbSize = sizeof(Format);
- Format.dwMask = CFM_BOLD | CFM_COLOR | CFM_BACKCOLOR;
- Format.dwEffects = CFE_BOLD;
- Format.crBackColor = ((~HiBackgoundClr) & 0x00ffffff);
- Format.crTextColor = ((~HiTextClr) & 0x00ffffff);
- SendDlgItemMessage(hwndDlg, IDC_DATA, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&Format);
- }
- }
-
- SetDlgItemTextA(hwndDlg, IDC_STATUSBAR, timestring);
- sprintf(BytesString, "%s: %d | %s: %lu", (Translate("Bytes in display")), (GetWindowTextLength(GetDlgItem(hwndDlg, IDC_DATA))), (Translate("Bytes downloaded")), downloadsize);
-
- SendDlgItemMessage(hwndDlg, IDC_STATUSBAR, SB_SETTEXT, 1, (LPARAM)BytesString);
- }
- else SetDlgItemText(hwndDlg, IDC_STATUSBAR, TranslateT("Alert test conditions not met; press the refresh button to view content."));
- }
- EnableWindow(GetDlgItem(hwndDlg, IDC_UPDATE_BUTTON), 1);
-
- if (!Startingup)
- g_plugin.setByte(HAS_CRASHED_KEY, 0);
-}
diff --git a/plugins/WebView/src/webview_opts.cpp b/plugins/WebView/src/webview_opts.cpp
deleted file mode 100644
index 135a78f528..0000000000
--- a/plugins/WebView/src/webview_opts.cpp
+++ /dev/null
@@ -1,1265 +0,0 @@
-/*
-* A plugin for Miranda IM which displays web page text in a window
-* Copyright (C) 2005 Vincent Joyce.
-*
-* Miranda IM: the free icq client for MS Windows Copyright (C) 2000-2
-* Richard Hughes, Roland Rabien & Tristan Van de Vreede
-*
-* 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 "stdafx.h"
-#include "webview.h"
-
-const wchar_t *szTrackerBarDescr[] = {
- LPGENW("No whitespace removal"),
- LPGENW("Minimal level of whitespace removal"),
- LPGENW("Medium level of whitespace removal"),
- LPGENW("Large level of whitespace removal"),
- LPGENW("Remove all whitespace")
-};
-
-static char *fontSizes[] = { "8", "10", "14", "16", "18", "20", "24", "28" };
-static wchar_t *AlertTypes[] = { LPGENW("Popup plugin"), LPGENW("Log to file"), LPGENW("Open data display window"), LPGENW("Use OSD plugin") };
-static wchar_t *EventTypes[] = { LPGENW("A string is present"), LPGENW("The web page changes"), LPGENW("A specific part of web page changes") };
-
-#define M_FILLSCRIPTCOMBO (WM_USER+16)
-
-wchar_t* FixButtonText(wchar_t *url, size_t len)
-{
- wchar_t buttontext[256], stringbefore[256], newbuttontext[256];
- wcsncpy_s(buttontext, url, _TRUNCATE);
- wcsncpy_s(newbuttontext, url, _TRUNCATE);
-
- if (wcschr(newbuttontext, '&') != nullptr) {
- while (true) {
- if (wcschr(newbuttontext, '&') == nullptr)
- break;
-
- wcsncpy_s(buttontext, newbuttontext, _TRUNCATE);
- wchar_t *stringafter = wcschr(buttontext, '&');
- int pos = (stringafter - buttontext);
- int posbefore = (stringafter - buttontext) - 1;
- int posafter = (stringafter - buttontext) + 1;
- strdelw(stringafter, 1);
- wcsncpy_s(stringbefore, pos, buttontext, _TRUNCATE);
- mir_snwprintf(newbuttontext, L"%s!!%s", stringbefore, stringafter);
-
- posafter = 0;
- posbefore = 0;
- }
-
- while (true) {
- if (wcschr(newbuttontext, '!') != nullptr) {
- wchar_t *stringafter = wcschr(newbuttontext, '!');
- int pos = (stringafter - newbuttontext);
- newbuttontext[pos] = '&';
- }
- if (wcschr(newbuttontext, '!') == nullptr)
- break;
- }
- }
-
- wcsncpy_s(url, len, newbuttontext, _TRUNCATE);
- return url;
-}
-
-/*****************************************************************************/
-static int CALLBACK EnumFontScriptsProc(ENUMLOGFONTEX * lpelfe, NEWTEXTMETRICEX*, int, LPARAM lParam)
-{
- if (SendMessage((HWND)lParam, CB_FINDSTRINGEXACT, -1, (LPARAM)lpelfe->elfScript) == CB_ERR) {
- int i = SendMessage((HWND)lParam, CB_ADDSTRING, 0, (LPARAM)lpelfe->elfScript);
-
- SendMessage((HWND)lParam, CB_SETITEMDATA, i, lpelfe->elfLogFont.lfCharSet);
- }
- return TRUE;
-}
-
-/*****************************************************************************/
-// copied and modified from NewStatusNotify
-INT_PTR CALLBACK DlgPopUpOpts(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
-
- char str[512];
- DWORD BGColour = 0;
- DWORD TextColour = 0;
- DWORD delay = 0;
- static int test = 0;
-
- switch (msg) {
- case WM_INITDIALOG:
- TranslateDialogDefault(hdlg);
-
- delay = g_plugin.getDword(POP_DELAY_KEY, 0);
-
- // setting popup delay option
- _itoa(delay, str, 10);
- SetDlgItemTextA(hdlg, IDC_DELAY, str);
-
- BGColour = g_plugin.getDword(POP_BG_CLR_KEY, Def_color_bg);
- TextColour = g_plugin.getDword(POP_TXT_CLR_KEY, Def_color_txt);
-
- // Colours. First step is configuring the colours.
- SendDlgItemMessage(hdlg, IDC_POP_BGCOLOUR, CPM_SETCOLOUR, 0, BGColour);
- SendDlgItemMessage(hdlg, IDC_POP_TEXTCOLOUR, CPM_SETCOLOUR, 0, TextColour);
- // Second step is disabling them if we want to use default Windows
- // ones.
- CheckDlgButton(hdlg, IDC_POP_USEWINCOLORS, g_plugin.getByte(POP_USEWINCLRS_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hdlg, IDC_POP_USESAMECOLORS, g_plugin.getByte(POP_USESAMECLRS_KEY, 1) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hdlg, IDC_POP_USECUSTCOLORS, g_plugin.getByte(POP_USECUSTCLRS_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
-
- if (IsDlgButtonChecked(hdlg, IDC_POP_USEWINCOLORS) || IsDlgButtonChecked(hdlg, IDC_POP_USESAMECOLORS)) {
- EnableWindow(GetDlgItem(hdlg, IDC_POP_BGCOLOUR), 0);
- EnableWindow(GetDlgItem(hdlg, IDC_POP_TEXTCOLOUR), 0);
- }
-
- CheckDlgButton(hdlg, IDC_LCLK_WINDOW, g_plugin.getByte(LCLK_WINDOW_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hdlg, IDC_LCLK_WEB_PGE, g_plugin.getByte(LCLK_WEB_PGE_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hdlg, IDC_LCLK_DISMISS, g_plugin.getByte(LCLK_DISMISS_KEY, 1) ? BST_CHECKED : BST_UNCHECKED);
-
- CheckDlgButton(hdlg, IDC_RCLK_WINDOW, g_plugin.getByte(RCLK_WINDOW_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hdlg, IDC_RCLK_WEB_PGE, g_plugin.getByte(RCLK_WEB_PGE_KEY, 1) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hdlg, IDC_RCLK_DISMISS, g_plugin.getByte(RCLK_DISMISS_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- return TRUE;
-
- case WM_COMMAND:
- // enable the "apply" button
- if (HIWORD(wParam) == BN_CLICKED && GetFocus() == (HWND)lParam)
- SendMessage(GetParent(hdlg), PSM_CHANGED, 0, 0);
- // These are simple clicks: we don't save, but we tell the Options Page
- // to enable the "Apply" button.
- switch (LOWORD(wParam)) {
- case IDC_POP_BGCOLOUR: // Fall through
- case IDC_POP_TEXTCOLOUR:
- // select new colors
- if (HIWORD(wParam) == CPN_COLOURCHANGED)
- SendMessage(GetParent(hdlg), PSM_CHANGED, 0, 0);
- break;
-
- case IDC_POP_USESAMECOLORS:
- // use same color as data window - enable/disable color selection
- // controls
- EnableWindow(GetDlgItem(hdlg, IDC_POP_BGCOLOUR), !((BYTE)IsDlgButtonChecked(hdlg, IDC_POP_USESAMECOLORS)));
- EnableWindow(GetDlgItem(hdlg, IDC_POP_TEXTCOLOUR), !((BYTE)IsDlgButtonChecked(hdlg, IDC_POP_USESAMECOLORS)));
- SendMessage(GetParent(hdlg), PSM_CHANGED, 0, 0);
- break;
-
- case IDC_POP_USEWINCOLORS:
- // use window color - enable/disable color selection controls
- EnableWindow(GetDlgItem(hdlg, IDC_POP_BGCOLOUR), !((BYTE)IsDlgButtonChecked(hdlg, IDC_POP_USEWINCOLORS)));
- EnableWindow(GetDlgItem(hdlg, IDC_POP_TEXTCOLOUR), !((BYTE)IsDlgButtonChecked(hdlg, IDC_POP_USEWINCOLORS)));
- SendMessage(GetParent(hdlg), PSM_CHANGED, 0, 0);
- break;
-
- case IDC_POP_USECUSTCOLORS:
- EnableWindow(GetDlgItem(hdlg, IDC_POP_BGCOLOUR), ((BYTE)IsDlgButtonChecked(hdlg, IDC_POP_USECUSTCOLORS)));
- EnableWindow(GetDlgItem(hdlg, IDC_POP_TEXTCOLOUR), ((BYTE)IsDlgButtonChecked(hdlg, IDC_POP_USECUSTCOLORS)));
- break;
-
- case IDC_PD1:
- SetDlgItemText(hdlg, IDC_DELAY, L"0");
- break;
- case IDC_PD2:
- // Popup delay = permanent
- SetDlgItemText(hdlg, IDC_DELAY, L"-1");
- break;
-
- case IDC_DELAY:
- if (HIWORD(wParam) == EN_CHANGE)
- test++;
- if (test > 1) {
- //CheckRadioButton(hdlg, IDC_PD1, IDC_PD3, IDC_PD3);
- SendMessage(GetParent(hdlg), PSM_CHANGED, 0, 0);
- }
- break;
-
- case IDC_PREVIEW:
- wchar_t str3[512];
- POPUPDATAW ppd = { 0 };
-
- GetDlgItemText(hdlg, IDC_DELAY, str3, _countof(str3));
-
- if (IsDlgButtonChecked(hdlg, IDC_POP_USECUSTCOLORS)) {
- BGColour = (SendDlgItemMessage(hdlg, IDC_POP_BGCOLOUR, CPM_GETCOLOUR, 0, 0));
- TextColour = (SendDlgItemMessage(hdlg, IDC_POP_TEXTCOLOUR, CPM_GETCOLOUR, 0, 0));
- }
- if (IsDlgButtonChecked(hdlg, IDC_POP_USEWINCOLORS)) {
- BGColour = GetSysColor(COLOR_BTNFACE);
- TextColour = GetSysColor(COLOR_WINDOWTEXT);
- }
- if (IsDlgButtonChecked(hdlg, IDC_POP_USESAMECOLORS)) {
- BGColour = BackgoundClr;
- TextColour = TextClr;
- }
- ppd.lchContact = NULL;
- mir_wstrcpy(ppd.lpwzContactName, _A2W(MODULENAME));
- ppd.lchIcon = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_SITE));
- mir_wstrcpy(ppd.lpwzText, TranslateT("This is a preview popup."));
- ppd.colorBack = BGColour;
- ppd.colorText = TextColour;
- ppd.PluginWindowProc = nullptr;
- ppd.iSeconds = _wtol(str3);
- // display popups
- PUAddPopupW(&ppd);
- }
- break;
-
- case WM_NOTIFY: // Here we have pressed either the OK or the APPLY button.
- switch (((LPNMHDR)lParam)->code) {
- case PSN_APPLY:
- int popupdelayval = 0;
- wchar_t str2[512];
- GetDlgItemText(hdlg, IDC_DELAY, str2, _countof(str2));
-
- popupdelayval = _wtol(str2);
- g_plugin.setDword(POP_DELAY_KEY, popupdelayval);
-
- g_plugin.setByte(LCLK_WINDOW_KEY, (BYTE)IsDlgButtonChecked(hdlg, IDC_LCLK_WINDOW));
- g_plugin.setByte(LCLK_WEB_PGE_KEY, (BYTE)IsDlgButtonChecked(hdlg, IDC_LCLK_WEB_PGE));
- g_plugin.setByte(LCLK_DISMISS_KEY, (BYTE)IsDlgButtonChecked(hdlg, IDC_LCLK_DISMISS));
-
- g_plugin.setByte(RCLK_WINDOW_KEY, (BYTE)IsDlgButtonChecked(hdlg, IDC_RCLK_WINDOW));
- g_plugin.setByte(RCLK_WEB_PGE_KEY, (BYTE)IsDlgButtonChecked(hdlg, IDC_RCLK_WEB_PGE));
- g_plugin.setByte(RCLK_DISMISS_KEY, (BYTE)IsDlgButtonChecked(hdlg, IDC_RCLK_DISMISS));
-
- g_plugin.setByte(POP_USECUSTCLRS_KEY, (BYTE)IsDlgButtonChecked(hdlg, IDC_POP_USECUSTCOLORS));
- g_plugin.setByte(POP_USEWINCLRS_KEY, (BYTE)IsDlgButtonChecked(hdlg, IDC_POP_USEWINCOLORS));
- g_plugin.setByte(POP_USESAMECLRS_KEY, (BYTE)IsDlgButtonChecked(hdlg, IDC_POP_USESAMECOLORS));
-
- BGColour = (SendDlgItemMessage(hdlg, IDC_POP_BGCOLOUR, CPM_GETCOLOUR, 0, 0));
- TextColour = (SendDlgItemMessage(hdlg, IDC_POP_TEXTCOLOUR, CPM_GETCOLOUR, 0, 0));
-
- g_plugin.setDword(POP_BG_CLR_KEY, BGColour);
- g_plugin.setDword(POP_TXT_CLR_KEY, TextColour);
-
- test = 0;
- return TRUE;
- }
- break;
- }
- return FALSE;
-}
-
-/*****************************************************************************/
-INT_PTR CALLBACK DlgProcAlertOpt(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- HWND ParentHwnd;
- DBVARIANT dbv;
- int i;
- int alertIndex = 0;
- int eventIndex = 0;
- static int test;
- MCONTACT hContact;
-
- ParentHwnd = GetParent(hwndDlg);
-
- switch (msg) {
- case WM_INITDIALOG:
- test = 0;
- TranslateDialogDefault(hwndDlg);
- hContact = lParam;
- SetWindowLongPtr(hwndDlg, GWLP_USERDATA, lParam);
-
- SetWindowText(hwndDlg, TranslateT("Alert options"));
-
- SendMessage(hwndDlg, WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_ALERT)));
-
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_APPLY), 0);
-
- if (!g_plugin.getWString(hContact, ALERT_STRING_KEY, &dbv)) {
- SetDlgItemText(hwndDlg, IDC_ALERT_STRING, dbv.pwszVal);
- db_free(&dbv);
- }
- if (!g_plugin.getWString(hContact, ALRT_S_STRING_KEY, &dbv)) {
- SetDlgItemText(hwndDlg, IDC_START2, dbv.pwszVal);
- db_free(&dbv);
- }
- if (!g_plugin.getWString(hContact, ALRT_E_STRING_KEY, &dbv)) {
- SetDlgItemText(hwndDlg, IDC_END2, dbv.pwszVal);
- db_free(&dbv);
- }
- CheckDlgButton(hwndDlg, IDC_ENABLE_ALERTS, g_plugin.getByte(hContact, ENABLE_ALERTS_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_ADD_DATE_NAME, g_plugin.getByte(hContact, APND_DATE_NAME_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_24_HOUR, g_plugin.getByte(hContact, USE_24_HOUR_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_ALWAYS_LOG, g_plugin.getByte(hContact, ALWAYS_LOG_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
-
- SetDlgItemText(hwndDlg, IDC_ALERT_TYPE, TranslateW(AlertTypes[g_plugin.getByte(hContact, ALRT_INDEX_KEY, 0)]));
- SetDlgItemText(hwndDlg, IDC_EVENT_TYPE, TranslateW(EventTypes[g_plugin.getByte(hContact, EVNT_INDEX_KEY, 0)]));
-
- for (i = 0; i < _countof(AlertTypes); i++)
- SendDlgItemMessage(hwndDlg, IDC_ALERT_TYPE, CB_ADDSTRING, 0, (LPARAM)TranslateW(AlertTypes[i]));
-
- for (i = 0; i < _countof(EventTypes); i++)
- SendDlgItemMessage(hwndDlg, IDC_EVENT_TYPE, CB_ADDSTRING, 0, (LPARAM)TranslateW(EventTypes[i]));
-
- if (g_plugin.getByte(hContact, ENABLE_ALERTS_KEY, 0)) {
- CheckDlgButton(hwndDlg, IDC_ENABLE_ALERTS, BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_ADD_DATE_NAME, BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_24_HOUR, BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_PREFIX, BST_UNCHECKED);
- }
- EnableWindow(GetDlgItem(hwndDlg, IDC_EVENT_TYPE), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_ADD_DATE_NAME), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
-
- if (IsDlgButtonChecked(hwndDlg, IDC_ADD_DATE_NAME)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_PREFIX), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_SUFFIX), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_24_HOUR), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- }
- else {
- EnableWindow(GetDlgItem(hwndDlg, IDC_PREFIX), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SUFFIX), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_24_HOUR), 0);
- }
-
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_TYPE), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_START2), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_END2), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALWAYS_LOG), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
-
- if (!g_plugin.getString(hContact, EVNT_INDEX_KEY, &dbv)) {
- eventIndex = g_plugin.getByte(hContact, EVNT_INDEX_KEY, 0);
- db_free(&dbv);
- }
- if (!g_plugin.getString(hContact, ALRT_INDEX_KEY, &dbv)) {
- alertIndex = g_plugin.getByte(hContact, ALRT_INDEX_KEY, 0);
- db_free(&dbv);
- }
-
- // alerts
- if (alertIndex == 0) // Popup
- {
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 0);
- }
- }
- else if (alertIndex == 1) // file
- {
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 1);
- }
- }
- else if (alertIndex == 2) // datawindow
- {
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 0);
- }
- }
- else if (alertIndex == 3) // osd
- {
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 0);
- }
- }
-
- // events
- if (eventIndex == 0) // string is present
- {
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_START2), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_END2), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), 1);
- }
- }
- else if (eventIndex == 1) // webpage changed
- {
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_START2), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_END2), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), 0);
- }
- }
- else if (eventIndex == 2) // part of page changed
- {
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_START2), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_END2), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), 0);
- }
- }
-
- if (!g_plugin.getWString(hContact, FILE_KEY, &dbv)) {
- SetDlgItemText(hwndDlg, IDC_FILENAME, dbv.pwszVal);
- db_free(&dbv);
- }
-
- CheckDlgButton(hwndDlg, IDC_APPEND, g_plugin.getByte(hContact, APPEND_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_SAVE_AS_RAW, g_plugin.getByte(hContact, SAVE_AS_RAW_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
-
- if (g_plugin.getByte(hContact, CONTACT_PREFIX_KEY, 1) == 1)
- CheckRadioButton(hwndDlg, IDC_PREFIX, IDC_SUFFIX, IDC_PREFIX);
- else
- CheckRadioButton(hwndDlg, IDC_PREFIX, IDC_SUFFIX, IDC_SUFFIX);
-
- if (g_plugin.getByte(hContact, ALWAYS_LOG_KEY, 0)) {
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 1);
- }
- }
- return TRUE;
-
- case WM_COMMAND:
- switch (LOWORD(wParam)) {
- case IDC_BROWSE:
- {
- wchar_t szFileName[MAX_PATH];
- GetDlgItemText(hwndDlg, IDC_FILENAME, szFileName, _countof(szFileName));
-
- OPENFILENAME ofn = { 0 };
- ofn.lStructSize = sizeof(ofn);
- ofn.hwndOwner = hwndDlg;
- ofn.hInstance = nullptr;
- ofn.lpstrFilter = L"TEXT Files (*.txt)\0*.txt\0All Files (*.*)\0*.*\0\0";
- ofn.lpstrFile = szFileName;
- ofn.Flags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;
- ofn.nMaxFile = _countof(szFileName);
- ofn.nMaxFileTitle = MAX_PATH;
- ofn.lpstrDefExt = L"txt";
- if (!GetSaveFileName(&ofn))
- break;
-
- SetDlgItemText(hwndDlg, IDC_FILENAME, szFileName);
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_APPLY), 1);
- }
- break;
-
- case IDC_ADD_DATE_NAME:
- EnableWindow(GetDlgItem(hwndDlg, IDC_PREFIX), (IsDlgButtonChecked(hwndDlg, IDC_ADD_DATE_NAME)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_SUFFIX), (IsDlgButtonChecked(hwndDlg, IDC_ADD_DATE_NAME)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_24_HOUR), (IsDlgButtonChecked(hwndDlg, IDC_ADD_DATE_NAME)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_APPLY), 1);
- break;
-
- case IDC_24_HOUR:
- case IDC_SUFFIX:
- case IDC_PREFIX:
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_APPLY), 1);
- break;
-
- case IDC_ALERT_STRING:
- if (HIWORD(wParam) == EN_CHANGE)
- test++;
- if (test > 1)
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_APPLY), 1);
- break;
-
- case IDC_START2:
- case IDC_END2:
- if (HIWORD(wParam) == EN_CHANGE)
- test++;
- if (test > 3)
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_APPLY), 1);
- break;
-
- case IDC_APPEND:
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_APPLY), 1);
- break;
-
- case IDC_SAVE_AS_RAW:
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_APPLY), 1);
- break;
-
- case IDC_ENABLE_ALERTS:
- hContact = (MCONTACT)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
- EnableWindow(GetDlgItem(hwndDlg, IDC_ADD_DATE_NAME), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
-
- if (IsDlgButtonChecked(hwndDlg, IDC_ADD_DATE_NAME)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_PREFIX), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_SUFFIX), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_24_HOUR), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- }
- else {
- EnableWindow(GetDlgItem(hwndDlg, IDC_PREFIX), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SUFFIX), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_24_HOUR), 0);
- }
-
- EnableWindow(GetDlgItem(hwndDlg, IDC_EVENT_TYPE), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_TYPE), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALWAYS_LOG), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
-
- eventIndex = g_plugin.getByte(hContact, EVNT_INDEX_KEY, 0);
- alertIndex = g_plugin.getByte(hContact, ALRT_INDEX_KEY, 0);
-
- if (eventIndex == 2) { // part of webpage changed
- EnableWindow(GetDlgItem(hwndDlg, IDC_START2), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_END2), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- }
- else {
- EnableWindow(GetDlgItem(hwndDlg, IDC_START2), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_END2), 0);
- }
-
- // ////////
- if (alertIndex == 0) { // popup
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 0);
-
- if (eventIndex == 2) // part of webpage changed
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), 0);
- if (eventIndex == 1) // webpage changed
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), 0);
- if (eventIndex == 0) // string present
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- }
- }
- else if (alertIndex == 1) { // log to file
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 1);
-
- if (eventIndex == 1) // webpage changed
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), 0);
- if (eventIndex == 0) // string present
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- }
- else {
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 0);
- }
- }
- else if (alertIndex == 2) { // display window
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 0);
-
- if (eventIndex == 1) // webpage changed
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), 0);
- if (eventIndex == 0) // string present
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- }
- }
- else if (alertIndex == 3) { // osd
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 0);
-
- if (eventIndex == 1) // webpage changed
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), 0);
- if (eventIndex == 0) // string present
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
- }
- }
-
- if (eventIndex == 0) // string present
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)));
-
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_APPLY), 1);
-
- if (IsDlgButtonChecked(hwndDlg, IDC_ALWAYS_LOG)) {
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 1);
- }
- else {
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 0);
- }
- }
- break;
-
- case IDC_ALWAYS_LOG:
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), (IsDlgButtonChecked(hwndDlg, IDC_ALWAYS_LOG)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), (IsDlgButtonChecked(hwndDlg, IDC_ALWAYS_LOG)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), (IsDlgButtonChecked(hwndDlg, IDC_ALWAYS_LOG)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), (IsDlgButtonChecked(hwndDlg, IDC_ALWAYS_LOG)));
- break;
-
- case IDC_ALERT_TYPE:
- if (HIWORD(wParam) == CBN_SELCHANGE || HIWORD(wParam) == CBN_EDITCHANGE) {
- hContact = (MCONTACT)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
- alertIndex = SendDlgItemMessage(hwndDlg, IDC_ALERT_TYPE, CB_GETCURSEL, 0, 0);
-
- if (HIWORD(wParam) == CBN_SELCHANGE) {
- g_plugin.setByte(hContact, ALRT_INDEX_KEY, alertIndex);
- if (alertIndex == 0) {
- // PopUp
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 0);
- }
- else if (alertIndex == 1) {
- // log to file
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 1);
- }
- else if (alertIndex == 2) {
- // data window
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 0);
- }
- else if (alertIndex == 3) {
- // OSD
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), 0);
- }
-
- if (IsDlgButtonChecked(hwndDlg, IDC_ALWAYS_LOG)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_APPEND), (IsDlgButtonChecked(hwndDlg, IDC_ALWAYS_LOG)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), (IsDlgButtonChecked(hwndDlg, IDC_ALWAYS_LOG)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), (IsDlgButtonChecked(hwndDlg, IDC_ALWAYS_LOG)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE_AS_RAW), (IsDlgButtonChecked(hwndDlg, IDC_ALWAYS_LOG)));
- }
- }
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_APPLY), 1);
- }
- break;
-
- case IDC_EVENT_TYPE:
- if (HIWORD(wParam) == CBN_SELCHANGE || HIWORD(wParam) == CBN_EDITCHANGE) {
- hContact = (MCONTACT)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
- eventIndex = SendDlgItemMessage(hwndDlg, IDC_EVENT_TYPE, CB_GETCURSEL, 0, 0);
-
- if (HIWORD(wParam) == CBN_SELCHANGE) {
- g_plugin.setByte(hContact, EVNT_INDEX_KEY, eventIndex);
- if (eventIndex == 0) {
- // event when string is present
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_START2), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_END2), 0);
- }
- else if (eventIndex == 1) {
- // event when web page changes
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_START2), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_END2), 0);
- }
- else if (eventIndex == 2) {
- // event when part of web page changes
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_STRING), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_START2), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_END2), 1);
- }
- }
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_APPLY), 1);
- }
- break;
-
- case IDC_ALERT_APPLY:
- case IDC_OK2:
- {
- hContact = (MCONTACT)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
-
- eventIndex = g_plugin.getByte(hContact, EVNT_INDEX_KEY, 0);
- alertIndex = g_plugin.getByte(hContact, ALRT_INDEX_KEY, 0);
-
- g_plugin.setByte(hContact, ENABLE_ALERTS_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS));
- g_plugin.setByte(hContact, APND_DATE_NAME_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_ADD_DATE_NAME));
- g_plugin.setByte(hContact, USE_24_HOUR_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_24_HOUR));
- g_plugin.setByte(hContact, ALWAYS_LOG_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_ALWAYS_LOG));
-
- //if alerts is unticked delete the cache
- if (!(IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)))
- SiteDeleted(hContact, 0);
-
- if (eventIndex == 0) // string present
- if (!(GetWindowTextLength(GetDlgItem(hwndDlg, IDC_ALERT_STRING))))
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- MessageBox(nullptr, TranslateT("You need to supply a search string."), _A2W(MODULENAME), MB_OK);
- break;
- }
-
- if (eventIndex == 2) // part of web page changed
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- if (!(GetWindowTextLength(GetDlgItem(hwndDlg, IDC_START2)))) {
- MessageBox(nullptr, TranslateT("You need to supply a start string."), _A2W(MODULENAME), MB_OK);
- break;
- }
- if (!(GetWindowTextLength(GetDlgItem(hwndDlg, IDC_END2)))) {
- MessageBox(nullptr, TranslateT("You need to supply an end string."), _A2W(MODULENAME), MB_OK);
- break;
- }
- }
-
- if (alertIndex == 1) // log to file
- if (!(GetWindowTextLength(GetDlgItem(hwndDlg, IDC_FILENAME))))
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- MessageBox(nullptr, TranslateT("You need to supply a file name and path."), _A2W(MODULENAME), MB_OK);
- break;
- }
-
- if (IsDlgButtonChecked(hwndDlg, IDC_ALWAYS_LOG))
- if (!(GetWindowTextLength(GetDlgItem(hwndDlg, IDC_FILENAME))))
- if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ALERTS)) {
- MessageBox(nullptr, TranslateT("You need to supply a file name and path."), _A2W(MODULENAME), MB_OK);
- break;
- }
-
- wchar_t buf[MAX_PATH];
- GetDlgItemText(hwndDlg, IDC_FILENAME, buf, _countof(buf));
- g_plugin.setWString(hContact, FILE_KEY, buf);
-
- g_plugin.setByte(hContact, APPEND_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_APPEND));
- g_plugin.setByte(hContact, SAVE_AS_RAW_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_SAVE_AS_RAW));
-
- GetDlgItemText(hwndDlg, IDC_ALERT_STRING, buf, _countof(buf));
- g_plugin.setWString(hContact, ALERT_STRING_KEY, buf);
-
- GetDlgItemText(hwndDlg, IDC_START2, buf, _countof(buf));
- g_plugin.setWString(hContact, ALRT_S_STRING_KEY, buf);
-
- GetDlgItemText(hwndDlg, IDC_END2, buf, _countof(buf));
- g_plugin.setWString(hContact, ALRT_E_STRING_KEY, buf);
-
- g_plugin.setByte(hContact, CONTACT_PREFIX_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_PREFIX));
-
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_APPLY), 0);
-
- if (LOWORD(wParam) == IDC_OK2)
- EndDialog(hwndDlg, 1);
- }
- break;
-
- case IDC_ALERT_CANCEL:
- case IDC_CANCEL:
- EndDialog(hwndDlg, 0);
- }
- }
- return FALSE;
-}
-
-/*****************************************************************************/
-
-INT_PTR CALLBACK DlgProcContactOpt(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- DBVARIANT dbv;
- wchar_t url[300];
- HWND ParentHwnd = GetParent(hwndDlg);
- static int test;
- static int test2;
- MCONTACT hContact;
-
- switch (msg) {
- case WM_INITDIALOG:
- TranslateDialogDefault(hwndDlg);
-
- hContact = (MCONTACT)lParam;
-
- test = 0;
- test2 = 0;
-
- SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)hContact);
-
- SetWindowText(hwndDlg, TranslateT("Contact options"));
-
- SendMessage(hwndDlg, WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_OPTIONS)));
-
- EnableWindow(GetDlgItem(hwndDlg, IDC_OPT_APPLY), 0);
-
- if (!g_plugin.getWString(hContact, URL_KEY, &dbv)) {
- SetDlgItemText(hwndDlg, IDC_URL, dbv.pwszVal);
- db_free(&dbv);
- }
- if (!g_plugin.getWString(hContact, START_STRING_KEY, &dbv)) {
- SetDlgItemText(hwndDlg, IDC_START, dbv.pwszVal);
- db_free(&dbv);
- }
- if (!g_plugin.getWString(hContact, END_STRING_KEY, &dbv)) {
- SetDlgItemText(hwndDlg, IDC_END, dbv.pwszVal);
- db_free(&dbv);
- }
- if (g_plugin.getWString(hContact, PRESERVE_NAME_KEY, &dbv)) {
- db_free(&dbv);
- db_get_ws(hContact, "CList", "MyHandle", &dbv);
- g_plugin.setWString(hContact, PRESERVE_NAME_KEY, dbv.pwszVal);
- db_free(&dbv);
- }
- if (!g_plugin.getWString(hContact, PRESERVE_NAME_KEY, &dbv)) {
- SetDlgItemText(hwndDlg, IDC_SITE_NAME, dbv.pwszVal);
- db_free(&dbv);
- }
-
- CheckDlgButton(hwndDlg, IDC_CLEAN, g_plugin.getByte(hContact, CLEAR_DISPLAY_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
-
- SendDlgItemMessage(hwndDlg, IDC_RWSPACE, TBM_SETRANGE, FALSE, MAKELONG(0, 4));
- SendDlgItemMessage(hwndDlg, IDC_RWSPACE, TBM_SETPOS, TRUE, g_plugin.getByte(hContact, RWSPACE_KEY, 0));
- SetDlgItemText(hwndDlg, IDC_RWSPC_TEXT, TranslateW(szTrackerBarDescr[SendDlgItemMessage(hwndDlg, IDC_RWSPACE, TBM_GETPOS, 0, 0)]));
-
- EnableWindow(GetDlgItem(hwndDlg, IDC_RWSPACE), (IsDlgButtonChecked(hwndDlg, IDC_CLEAN)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_RWSPC_TEXT), (IsDlgButtonChecked(hwndDlg, IDC_CLEAN)));
-
- if (g_plugin.getByte(hContact, DBLE_WIN_KEY, 1) == 1)
- CheckRadioButton(hwndDlg, IDC_DBLE_WEB, IDC_DBLE_WIN, IDC_DBLE_WIN);
- else
- CheckRadioButton(hwndDlg, IDC_DBLE_WEB, IDC_DBLE_WIN, IDC_DBLE_WEB);
-
- if (g_plugin.getByte(hContact, U_ALLSITE_KEY, 0) == 1) {
- CheckRadioButton(hwndDlg, IDC_U_SE_STRINGS, IDC_U_ALLSITE, IDC_U_ALLSITE);
- EnableWindow(GetDlgItem(hwndDlg, IDC_START), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_END), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_CPY_STRINGS), 0);
- }
- else {
- CheckRadioButton(hwndDlg, IDC_U_SE_STRINGS, IDC_U_ALLSITE, IDC_U_SE_STRINGS);
- EnableWindow(GetDlgItem(hwndDlg, IDC_START), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_END), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_CPY_STRINGS), 1);
- //EnableWindow(GetDlgItem(hwndDlg, IDC_CPY_STR_TXT), 1);
- }
- break;
-
- case WM_HSCROLL:
- SetDlgItemText(hwndDlg, IDC_RWSPC_TEXT, TranslateW(szTrackerBarDescr[SendDlgItemMessage(hwndDlg, IDC_RWSPACE, TBM_GETPOS, 0, 0)]));
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_OPT_APPLY), 1);
- break;
-
- case WM_COMMAND:
- switch (LOWORD(wParam)) {
- case WM_CLOSE:
- case IDCANCEL:
- if (hwndDlg) {
- DestroyWindow(hwndDlg);
- hwndDlg = nullptr;
- }
- return TRUE;
-
- case IDC_SITE_NAME:
- case IDC_URL:
- if (HIWORD(wParam) == EN_CHANGE)
- test++;
- if (test > 2)
- EnableWindow(GetDlgItem(hwndDlg, IDC_OPT_APPLY), 1);
- break;
-
- case IDC_DBLE_WEB:
- case IDC_DBLE_WIN:
- EnableWindow(GetDlgItem(hwndDlg, IDC_OPT_APPLY), 1);
- break;
-
- case IDC_START:
- case IDC_END:
- if (HIWORD(wParam) == EN_CHANGE)
- test2++;
- if (test2 > 2)
- EnableWindow(GetDlgItem(hwndDlg, IDC_OPT_APPLY), 1);
- break;
-
- case IDC_CPY_STRINGS:
- {
- wchar_t string[128];
- hContact = (MCONTACT)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
-
- GetDlgItemText(hwndDlg, IDC_START, string, _countof(string));
- g_plugin.setWString(hContact, ALRT_S_STRING_KEY, string);
-
- GetDlgItemText(hwndDlg, IDC_END, string, _countof(string));
- g_plugin.setWString(hContact, ALRT_E_STRING_KEY, string);
-
- g_plugin.setWord(hContact, EVNT_INDEX_KEY, 2);
- }
- break;
-
- case IDC_CLEAN:
- EnableWindow(GetDlgItem(hwndDlg, IDC_RWSPACE), (IsDlgButtonChecked(hwndDlg, IDC_CLEAN)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_RWSPC_TEXT), (IsDlgButtonChecked(hwndDlg, IDC_CLEAN)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_OPT_APPLY), 1);
- break;
-
- case IDC_U_SE_STRINGS:
- EnableWindow(GetDlgItem(hwndDlg, IDC_START), (IsDlgButtonChecked(hwndDlg, IDC_U_SE_STRINGS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_END), (IsDlgButtonChecked(hwndDlg, IDC_U_SE_STRINGS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_CPY_STRINGS), (IsDlgButtonChecked(hwndDlg, IDC_U_SE_STRINGS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_OPT_APPLY), 1);
- break;
-
- case IDC_U_ALLSITE:
- EnableWindow(GetDlgItem(hwndDlg, IDC_START), (IsDlgButtonChecked(hwndDlg, IDC_U_SE_STRINGS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_END), (IsDlgButtonChecked(hwndDlg, IDC_U_SE_STRINGS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_CPY_STRINGS), (IsDlgButtonChecked(hwndDlg, IDC_U_SE_STRINGS)));
- EnableWindow(GetDlgItem(hwndDlg, IDC_OPT_APPLY), 1);
- break;
-
- case IDC_OPT_APPLY:
- case IDOK:
- {
- wchar_t str[128], contactname[128];
- if (!GetWindowTextLength(GetDlgItem(hwndDlg, IDC_URL))) {
- MessageBox(nullptr, TranslateT("You need to supply a URL."), _A2W(MODULENAME), MB_OK);
- break;
- }
- if (!GetWindowTextLength(GetDlgItem(hwndDlg, IDC_START))) {
- if (IsDlgButtonChecked(hwndDlg, IDC_U_SE_STRINGS)) {
- MessageBox(nullptr, TranslateT("You need to supply a start string."), _A2W(MODULENAME), MB_OK);
- break;
- }
- }
- if (!GetWindowTextLength(GetDlgItem(hwndDlg, IDC_END))) {
- if (IsDlgButtonChecked(hwndDlg, IDC_U_SE_STRINGS)) {
- MessageBox(nullptr, TranslateT("You need to supply an end string."), _A2W(MODULENAME), MB_OK);
- break;
- }
- }
- if (!GetWindowTextLength(GetDlgItem(hwndDlg, IDC_SITE_NAME))) {
- MessageBox(nullptr, TranslateT("You need to supply a name for the contact."), _A2W(MODULENAME), MB_OK);
- break;
- }
-
- GetDlgItemText(hwndDlg, IDC_SITE_NAME, contactname, _countof(contactname));
- if (wcschr(contactname, '\\') != nullptr) {
- MessageBox(nullptr, TranslateT("Invalid symbol present in contact name."), _A2W(MODULENAME), MB_OK);
- break;
- }
- if (wcschr(contactname, '/') != nullptr) {
- MessageBox(nullptr, TranslateT("Invalid symbol present in contact name."), _A2W(MODULENAME), MB_OK);
- break;
- }
- if (wcschr(contactname, ':') != nullptr) {
- MessageBox(nullptr, TranslateT("Invalid symbol present in contact name."), _A2W(MODULENAME), MB_OK);
- break;
- }
- if (wcschr(contactname, '*') != nullptr) {
- MessageBox(nullptr, TranslateT("Invalid symbol present in contact name."), _A2W(MODULENAME), MB_OK);
- break;
- }
- if (wcschr(contactname, '?') != nullptr) {
- MessageBox(nullptr, TranslateT("Invalid symbol present in contact name."), _A2W(MODULENAME), MB_OK);
- break;
- }
- if (wcschr(contactname, '\"') != nullptr) {
- MessageBox(nullptr, TranslateT("Invalid symbol present in contact name."), _A2W(MODULENAME), MB_OK);
- break;
- }
- if (wcschr(contactname, '<') != nullptr) {
- MessageBox(nullptr, TranslateT("Invalid symbol present in contact name."), _A2W(MODULENAME), MB_OK);
- break;
- }
- if (wcschr(contactname, '>') != nullptr) {
- MessageBox(nullptr, TranslateT("Invalid symbol present in contact name."), _A2W(MODULENAME), MB_OK);
- break;
- }
- if (wcschr(contactname, '|') != nullptr) {
- MessageBox(nullptr, TranslateT("Invalid symbol present in contact name."), _A2W(MODULENAME), MB_OK);
- break;
- }
-
- hContact = (MCONTACT)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
-
- GetDlgItemText(hwndDlg, IDC_URL, url, _countof(url));
- g_plugin.setWString(hContact, URL_KEY, url);
- g_plugin.setWString(hContact, "Homepage", url);
-
- GetDlgItemText(hwndDlg, IDC_START, str, _countof(str));
- g_plugin.setWString(hContact, START_STRING_KEY, str);
-
- GetDlgItemText(hwndDlg, IDC_END, str, _countof(str));
- g_plugin.setWString(hContact, END_STRING_KEY, str);
-
- GetDlgItemText(hwndDlg, IDC_SITE_NAME, str, _countof(str));
- db_set_ws(hContact, "CList", "MyHandle", str);
-
- g_plugin.setByte(hContact, DBLE_WIN_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_DBLE_WIN));
- g_plugin.setByte(hContact, U_ALLSITE_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_U_ALLSITE));
-
- g_plugin.setByte(hContact, CLEAR_DISPLAY_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_CLEAN));
- g_plugin.setByte(hContact, RWSPACE_KEY, (BYTE)(SendDlgItemMessage(hwndDlg, IDC_RWSPACE, TBM_GETPOS, 0, 0)));
-
- SetDlgItemText(ParentHwnd, IDC_OPEN_URL, FixButtonText(url, _countof(url)));
-
- SetWindowText(ParentHwnd, str);
- EnableWindow(GetDlgItem(hwndDlg, IDC_OPT_APPLY), 0);
-
- if (LOWORD(wParam) == IDOK)
- EndDialog(hwndDlg, 1);
- }
- break;
-
- case IDC_OPT_CANCEL:
- EndDialog(hwndDlg, 0);
- }
- break;
- }
- return FALSE;
-}
-
-/*****************************************************************************/
-INT_PTR CALLBACK DlgProcOpt(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
-{
- DWORD timerval, delaytime, oldcolor;
- DBVARIANT dbv;
- static int test = 0;
- static int test2 = 0;
-
- switch (uMsg) {
- case WM_INITDIALOG:
- TranslateDialogDefault(hwndDlg);
- {
- test = 0;
-
- SendDlgItemMessage(hwndDlg, IDC_SPIN1, UDM_SETRANGE, 0, MAKELONG(999, 0));
- SendDlgItemMessage(hwndDlg, IDC_SPIN2, UDM_SETRANGE, 0, MAKELONG(120, 0));
-
- SetDlgItemInt(hwndDlg, IDC_TIME, g_plugin.getDword(REFRESH_KEY, TIME), FALSE);
- SetDlgItemInt(hwndDlg, IDC_START_DELAY, g_plugin.getWord(START_DELAY_KEY, 0), FALSE);
-
- mir_forkthread(FillFontListThread, hwndDlg);
-
- CheckDlgButton(hwndDlg, IDC_DISABLEMENU, g_plugin.getByte(MENU_OFF, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_SUPPRESS, g_plugin.getByte(SUPPRESS_ERR_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_UPDATE_ONSTART, g_plugin.getByte(UPDATE_ONSTART_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_UPDATE_ON_OPEN, g_plugin.getByte(UPDATE_ON_OPEN_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_HIDE_STATUS_ICON, g_plugin.getByte(HIDE_STATUS_ICON_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_FONT_BOLD, g_plugin.getByte(FONT_BOLD_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_FONT_ITALIC, g_plugin.getByte(FONT_ITALIC_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_FONT_UNDERLINE, g_plugin.getByte(FONT_UNDERLINE_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_ERROR_POPUP, g_plugin.getByte(ERROR_POPUP_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_UPDATE_ONALERT, g_plugin.getByte(UPDATE_ONALERT_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_SAVE_INDIVID_POS, g_plugin.getByte(SAVE_INDIVID_POS_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_NO_PROTECT, g_plugin.getByte(NO_PROTECT_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_DATAPOPUP, g_plugin.getByte(DATA_POPUP_KEY, 0) ? BST_CHECKED : BST_UNCHECKED);
-
- if (!g_plugin.getWString(FONT_FACE_KEY, &dbv)) {
- SetDlgItemText(hwndDlg, IDC_TYPEFACE, dbv.pwszVal);
- db_free(&dbv);
- }
- else SetDlgItemText(hwndDlg, IDC_TYPEFACE, Def_font_face);
-
- for (int i = 0; i < _countof(fontSizes); i++)
- SendDlgItemMessage(hwndDlg, IDC_FONTSIZE, CB_ADDSTRING, 0, (LPARAM)fontSizes[i]);
-
- SendMessage(hwndDlg, M_FILLSCRIPTCOMBO, wParam, 0);
-
- SetDlgItemInt(hwndDlg, IDC_FONTSIZE, g_plugin.getByte(FONT_SIZE_KEY, 14), FALSE);
-
- EnableWindow(GetDlgItem(hwndDlg, IDC_FIND_BUTTON), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_ALERT_BUTTON), 0);
-
- SendDlgItemMessage(hwndDlg, IDC_BGCOLOR, CPM_SETCOLOUR, 0, (BackgoundClr));
- SendDlgItemMessage(hwndDlg, IDC_TXTCOLOR, CPM_SETCOLOUR, 0, (TextClr));
-
- /*
- * record bg value for later comparison
- */
- oldcolor = BackgoundClr;
-
- if (g_plugin.getByte(SUPPRESS_ERR_KEY, 0)) {
- CheckDlgButton(hwndDlg, IDC_SUPPRESS, BST_CHECKED);
- EnableWindow(GetDlgItem(hwndDlg, IDC_ERROR_POPUP), 0);
- }
- else {
- CheckDlgButton(hwndDlg, IDC_SUPPRESS, BST_UNCHECKED);
- if ((ServiceExists(MS_POPUP_ADDPOPUPW) != 0))
- EnableWindow(GetDlgItem(hwndDlg, IDC_ERROR_POPUP), 1);
- }
-
- if (ServiceExists(MS_POPUP_ADDPOPUPW) == 0)
- EnableWindow(GetDlgItem(hwndDlg, IDC_ERROR_POPUP), 0);
-
- if (g_plugin.getByte(UPDATE_ONSTART_KEY, 0)) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_START_DELAY), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SPIN2), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_STARTDELAYTXT), 1);
- EnableWindow(GetDlgItem(hwndDlg, IDC_STDELAYSECTXT), 1);
- }
- else {
- EnableWindow(GetDlgItem(hwndDlg, IDC_START_DELAY), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SPIN2), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_STARTDELAYTXT), 0);
- EnableWindow(GetDlgItem(hwndDlg, IDC_STDELAYSECTXT), 0);
- }
- }
- break;
-
- case M_FILLSCRIPTCOMBO: // fill the script combo box and set the
- // selection to the value for fontid wParam
-
- {
- LOGFONT lf = { 0 };
- int i;
- HDC hdc = GetDC(hwndDlg);
-
- lf.lfCharSet = DEFAULT_CHARSET;
- GetDlgItemText(hwndDlg, IDC_TYPEFACE, lf.lfFaceName, _countof(lf.lfFaceName));
- lf.lfPitchAndFamily = 0;
- SendDlgItemMessage(hwndDlg, IDC_SCRIPT, CB_RESETCONTENT, 0, 0);
- EnumFontFamiliesEx(hdc, &lf, (FONTENUMPROC)EnumFontScriptsProc, (LPARAM)GetDlgItem(hwndDlg, IDC_SCRIPT), 0);
- ReleaseDC(hwndDlg, hdc);
- for (i = SendDlgItemMessage(hwndDlg, IDC_SCRIPT, CB_GETCOUNT, 0, 0) - 1; i >= 0; i--) {
- if (SendDlgItemMessage(hwndDlg, IDC_SCRIPT, CB_GETITEMDATA, i, 0) == (BYTE)((g_plugin.getByte(FONT_SCRIPT_KEY, 0)))) {
- SendDlgItemMessage(hwndDlg, IDC_SCRIPT, CB_SETCURSEL, i, 0);
- break;
- }
- }
- if (i < 0)
- SendDlgItemMessage(hwndDlg, IDC_SCRIPT, CB_SETCURSEL, 0, 0);
- }
- break;
-
- case WM_COMMAND:
- if (HIWORD(wParam) == BN_CLICKED && GetFocus() == (HWND)lParam)
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
-
- switch (LOWORD(wParam)) {
- case IDC_TXTCOLOR:
- TextClr = SendDlgItemMessage(hwndDlg, IDC_TXTCOLOR, CPM_GETCOLOUR, 0, 0);
- g_plugin.setDword(TXT_COLOR_KEY, TextClr);
- if (HIWORD(wParam) == CPN_COLOURCHANGED) {
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- TxtclrLoop();
- }
- break;
-
- case IDC_BGCOLOR:
- BackgoundClr = SendDlgItemMessage(hwndDlg, IDC_BGCOLOR, CPM_GETCOLOUR, 0, 0);
- g_plugin.setDword(BG_COLOR_KEY, BackgoundClr);
- if (HIWORD(wParam) == CPN_COLOURCHANGED) {
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- BGclrLoop();
- }
- break;
-
- case IDC_HIDE_STATUS_ICON:
- ShowWindow(GetDlgItem(hwndDlg, IDC_RESTART), SW_SHOW);
- break;
-
- case IDC_SUPPRESS:
- if ((ServiceExists(MS_POPUP_ADDPOPUPW) != 0))
- EnableWindow(GetDlgItem(hwndDlg, IDC_ERROR_POPUP), (!(IsDlgButtonChecked(hwndDlg, IDC_SUPPRESS))));
- break;
-
- case IDC_UPDATE_ONSTART:
- EnableWindow(GetDlgItem(hwndDlg, IDC_START_DELAY), ((IsDlgButtonChecked(hwndDlg, IDC_UPDATE_ONSTART))));
- EnableWindow(GetDlgItem(hwndDlg, IDC_SPIN2), ((IsDlgButtonChecked(hwndDlg, IDC_UPDATE_ONSTART))));
- EnableWindow(GetDlgItem(hwndDlg, IDC_STARTDELAYTXT), ((IsDlgButtonChecked(hwndDlg, IDC_UPDATE_ONSTART))));
- EnableWindow(GetDlgItem(hwndDlg, IDC_STDELAYSECTXT), ((IsDlgButtonChecked(hwndDlg, IDC_UPDATE_ONSTART))));
- break;
-
- case IDC_DISABLEMENU:
- ShowWindow(GetDlgItem(hwndDlg, IDC_RESTART), SW_SHOW);
- break;
-
- case IDC_TYPEFACE:
- SendMessage(hwndDlg, M_FILLSCRIPTCOMBO, wParam, 0);
- case IDC_FONTSIZE:
- case IDC_SCRIPT:
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- break;
-
- case IDC_START_DELAY:
- if (HIWORD(wParam) == EN_CHANGE)
- test++;
- if (test > 1)
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- break;
-
- case IDC_TIME:
- if (HIWORD(wParam) == EN_CHANGE)
- test2++;
- if (test2 > 2)
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- break;
- } // end WM_COMMAND
- break;
-
- case WM_DESTROY:
- test = 0;
- test2 = 0;
- break;
-
- case WM_NOTIFY:
- switch (((LPNMHDR)lParam)->code) {
- case PSN_APPLY:
- g_plugin.setByte(MENU_OFF, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_DISABLEMENU));
- g_plugin.setByte(SUPPRESS_ERR_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_SUPPRESS));
- g_plugin.setByte(UPDATE_ONSTART_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_UPDATE_ONSTART));
- g_plugin.setByte(UPDATE_ON_OPEN_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_UPDATE_ON_OPEN));
- g_plugin.setByte(HIDE_STATUS_ICON_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_HIDE_STATUS_ICON));
- g_plugin.setByte(FONT_BOLD_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_FONT_BOLD));
- g_plugin.setByte(FONT_ITALIC_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_FONT_ITALIC));
- g_plugin.setByte(FONT_UNDERLINE_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_FONT_UNDERLINE));
- g_plugin.setByte(UPDATE_ONALERT_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_UPDATE_ONALERT));
- g_plugin.setByte(SAVE_INDIVID_POS_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_SAVE_INDIVID_POS));
- g_plugin.setByte(NO_PROTECT_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_NO_PROTECT));
- g_plugin.setByte(DATA_POPUP_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_DATAPOPUP));
-
- wchar_t str[100];
- GetDlgItemText(hwndDlg, IDC_TYPEFACE, str, _countof(str));
- g_plugin.setWString(FONT_FACE_KEY, str);
-
- g_plugin.setByte(FONT_SIZE_KEY, (GetDlgItemInt(hwndDlg, IDC_FONTSIZE, nullptr, FALSE)));
- g_plugin.setByte(FONT_SCRIPT_KEY, ((BYTE)SendDlgItemMessage(hwndDlg, IDC_SCRIPT, CB_GETITEMDATA, SendDlgItemMessage(hwndDlg, IDC_SCRIPT, CB_GETCURSEL, 0, 0), 0)));
-
- g_plugin.setByte(ERROR_POPUP_KEY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_ERROR_POPUP));
-
- timerval = GetDlgItemInt(hwndDlg, IDC_TIME, nullptr, FALSE);
- g_plugin.setDword(REFRESH_KEY, timerval);
- g_plugin.setDword(COUNTDOWN_KEY, timerval);
-
-
- delaytime = GetDlgItemInt(hwndDlg, IDC_START_DELAY, nullptr, FALSE);
- g_plugin.setDword(START_DELAY_KEY, delaytime);
-
- BackgoundClr = (SendDlgItemMessage(hwndDlg, IDC_BGCOLOR, CPM_GETCOLOUR, 0, 0));
- TextClr = (SendDlgItemMessage(hwndDlg, IDC_TXTCOLOR, CPM_GETCOLOUR, 0, 0));
-
- if ((g_plugin.getDword(REFRESH_KEY, 0) != 0)) {
- KillTimer(nullptr, timerId);
- KillTimer(nullptr, Countdown);
- timerId = SetTimer(nullptr, 0, ((g_plugin.getDword(REFRESH_KEY, 0)) * MINUTE), timerfunc);
- Countdown = SetTimer(nullptr, 0, MINUTE, Countdownfunc);
- }
- if ((g_plugin.getDword(REFRESH_KEY, 0) == 0)) {
- KillTimer(nullptr, timerId);
- KillTimer(nullptr, Countdown);
- }
- test = 0;
- }
- break; // end apply
- }
-
- return 0;
-}
diff --git a/plugins/WebView/src/webview_services.cpp b/plugins/WebView/src/webview_services.cpp
deleted file mode 100644
index 4957120181..0000000000
--- a/plugins/WebView/src/webview_services.cpp
+++ /dev/null
@@ -1,458 +0,0 @@
-/*
-* A plugin for Miranda IM which displays web page text in a window Copyright
-* (C) 2005 Vincent Joyce.
-*
-* Miranda IM: the free icq client for MS Windows Copyright (C) 2000-2
-* Richard Hughes, Roland Rabien & Tristan Van de Vreede
-*
-* 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 "stdafx.h"
-#include "webview.h"
-
-static int searchId = -1;
-
-/*****************************************************************************/
-static char szInvalidChars[] = { '\\', '/', ':', '*', '?', '\"', '<', '>', '|' };
-
-int DBSettingChanged(WPARAM wParam, LPARAM lParam)
-{
- // We can't upload changes to NULL contact
- MCONTACT hContact = wParam;
- if (hContact == NULL)
- return 0;
-
- DBCONTACTWRITESETTING *cws = (DBCONTACTWRITESETTING *)lParam;
- if (!strcmp(cws->szModule, "CList")) {
- int invalidpresent = 0;
-
- char *szProto = GetContactProto(hContact);
- if (szProto == nullptr || strcmp(szProto, MODULENAME))
- return 0;
-
- // A contact is renamed
- if (!strcmp(cws->szSetting, "MyHandle")) {
- ptrW oldName(g_plugin.getWStringA(hContact, PRESERVE_NAME_KEY));
- if (oldName == NULL)
- return 0;
-
- wchar_t nick[100];
- ptrW oldnick(db_get_wsa(hContact, "CList", "MyHandle"));
- if (oldnick != NULL)
- wcsncpy_s(nick, oldnick, _TRUNCATE);
- else
- nick[0] = 0;
-
- for (int i = 0; i < _countof(szInvalidChars); i++) {
- wchar_t *p = wcschr(nick, szInvalidChars[i]);
- if (p != nullptr) {
- WErrorPopup((UINT_PTR)"ERROR", TranslateT("Invalid symbol present in contact name."));
- *p = '_';
- invalidpresent = 1;
- }
- }
-
- if (invalidpresent) {
- srand((unsigned)time(0));
- wchar_t ranStr[7];
- _itow((int)10000 * rand() / (RAND_MAX + 1.0), ranStr, 10);
- mir_wstrcat(nick, ranStr);
- }
-
- if (wcschr(nick, '(') == nullptr) {
- g_plugin.setWString(hContact, PRESERVE_NAME_KEY, nick);
- g_plugin.setWString(hContact, "Nick", nick);
- db_set_ws(hContact, "CList", "MyHandle", nick);
- }
-
- // TEST GET NAME FOR CACHE
- wchar_t cachepath[MAX_PATH], cachedirectorypath[MAX_PATH];
- GetModuleFileName(g_plugin.getInst(), cachepath, _countof(cachepath));
- wchar_t *cacheend = wcsrchr(cachepath, '\\');
- cacheend++;
- *cacheend = '\0';
- mir_snwprintf(cachedirectorypath, L"%s" _A2W(MODULENAME) L"cache\\", cachepath);
- CreateDirectory(cachedirectorypath, nullptr);
-
- wchar_t newcachepath[MAX_PATH + 50], renamedcachepath[MAX_PATH + 50];
- mir_snwprintf(newcachepath, L"%s" _A2W(MODULENAME) L"cache\\%s.txt", cachepath, oldName);
- mir_snwprintf(renamedcachepath, L"%s" _A2W(MODULENAME) L"cache\\%s.txt", cachepath, nick);
-
- // file exists?
- if (_waccess(newcachepath, 0) != -1) {
- FILE *pcachefile = _wfopen(newcachepath, L"r");
- if (pcachefile != nullptr) {
- fclose(pcachefile);
- if (mir_wstrcmp(newcachepath, renamedcachepath)) {
- MoveFile(newcachepath, renamedcachepath);
- g_plugin.setWString(hContact, CACHE_FILE_KEY, renamedcachepath);
- }
- }
- }
- }
- }
- return 0;
-}
-
-/*****************************************************************************/
-int SiteDeleted(WPARAM wParam, LPARAM)
-{
- MCONTACT hContact = wParam;
- if (mir_strcmp(GetContactProto(hContact), MODULENAME))
- return 0;
-
- ptrW contactName(g_plugin.getWStringA(hContact, PRESERVE_NAME_KEY));
-
- // TEST GET NAME FOR CACHE
- wchar_t cachepath[MAX_PATH], cachedirectorypath[MAX_PATH], newcachepath[MAX_PATH + 50];
- GetModuleFileName(g_plugin.getInst(), cachepath, _countof(cachepath));
- wchar_t *cacheend = wcsrchr(cachepath, '\\');
- cacheend++;
- *cacheend = '\0';
-
- mir_snwprintf(cachedirectorypath, L"%s" _A2W(MODULENAME) L"cache\\", cachepath);
- CreateDirectory(cachedirectorypath, nullptr);
- mir_snwprintf(newcachepath, L"%s" _A2W(MODULENAME) L"cache\\%s.txt", cachepath, contactName);
- // file exists?
- if (_waccess(newcachepath, 0) != -1) {
- FILE *pcachefile = _wfopen(newcachepath, L"r");
- if (pcachefile != nullptr) {
- fclose(pcachefile);
- DeleteFile(newcachepath);
- g_plugin.setString(hContact, CACHE_FILE_KEY, "");
- }
- }
- return 0;
-}
-
-/*****************************************************************************/
-INT_PTR OpenCacheDir(WPARAM, LPARAM)
-{
- //GET NAME FOR CACHE
- wchar_t cachepath[MAX_PATH], cachedirectorypath[MAX_PATH];
- GetModuleFileName(g_plugin.getInst(), cachepath, _countof(cachepath));
- wchar_t *cacheend = wcsrchr(cachepath, '\\');
- cacheend++;
- *cacheend = '\0';
-
- mir_snwprintf(cachedirectorypath, L"%s" _A2W(MODULENAME) L"cache\\%s", cachepath, cacheend);
-
- if (_waccess(cachedirectorypath, 0) != 0)
- WErrorPopup((UINT_PTR)"ERROR", TranslateT("Cache folder does not exist."));
- else
- ShellExecute(nullptr, L"open", cachedirectorypath, nullptr, nullptr, SW_SHOWNORMAL);
- return 0;
-}
-
-/*****************************************************************************/
-INT_PTR PingWebsiteMenuCommand(WPARAM wParam, LPARAM)
-{
- FILE *pfile = fopen("psite.bat", "r");
- if (pfile == nullptr) {
- WErrorPopup((UINT_PTR)"ERROR", TranslateT("Missing \"psite.bat\" file."));
- return 0;
- }
-
- ptrW url(g_plugin.getWStringA(wParam, "URL"));
- if (url == NULL)
- return 0;
-
- wchar_t Cnick[200], *Oldnick;
- wcsncpy(Cnick, url, _countof(Cnick));
- if ((Oldnick = wcsstr(Cnick, L"://")) != nullptr)
- Oldnick += 3;
- else
- Oldnick = Cnick;
-
- wchar_t *Nend = wcschr(Oldnick, '/');
- if (Nend) *Nend = '\0';
-
- ShellExecute(nullptr, L"open", L"psite.bat", Oldnick, nullptr, SW_HIDE);
- return 0;
-}
-
-/*****************************************************************************/
-INT_PTR StpPrcssMenuCommand(WPARAM wParam, LPARAM)
-{
- g_plugin.setByte(wParam, STOP_KEY, 1);
- return 0;
-}
-
-//=======================================================
-// GetCaps
-// =======================================================
-
-INT_PTR GetCaps(WPARAM wParam, LPARAM)
-{
- switch (wParam) {
- case PFLAGNUM_1:
- return PF1_BASICSEARCH | PF1_ADDSEARCHRES | PF1_VISLIST;
- case PFLAGNUM_2:
- return g_plugin.getByte(HIDE_STATUS_ICON_KEY, 0) ? 0 : (PF2_ONLINE | PF2_SHORTAWAY | PF2_LONGAWAY | PF2_LIGHTDND | PF2_HEAVYDND);
- case PFLAGNUM_3:
- return 0;
- case PFLAGNUM_4:
- return PF4_NOCUSTOMAUTH | PF4_NOAUTHDENYREASON;
- case PFLAGNUM_5:
- return PF2_INVISIBLE | PF2_SHORTAWAY | PF2_LONGAWAY | PF2_LIGHTDND | PF2_HEAVYDND | PF2_FREECHAT | PF2_OUTTOLUNCH | PF2_ONTHEPHONE;
- case PFLAG_UNIQUEIDTEXT:
- return (INT_PTR)Translate("Site URL");
- default:
- return 0;
- }
-}
-
-// =======================================================
-// GetName
-// =======================================================
-
-INT_PTR GetName(WPARAM wParam, LPARAM lParam)
-{
- mir_strncpy((char*)lParam, MODULENAME, wParam);
- return 0;
-}
-
-//=======================================================
-// SetStatus
-// =======================================================
-
-INT_PTR SetStatus(WPARAM wParam, LPARAM)
-{
- int oldStatus = bpStatus;
-
- if (wParam == ID_STATUS_ONLINE)
- wParam = ID_STATUS_ONLINE;
- else if (wParam == ID_STATUS_OFFLINE)
- wParam = ID_STATUS_OFFLINE;
- else
- wParam = ID_STATUS_ONLINE;
-
- // broadcast the message
- bpStatus = wParam;
-
- ProtoBroadcastAck(MODULENAME, NULL, ACKTYPE_STATUS, ACKRESULT_SUCCESS, (HANDLE)oldStatus, wParam);
-
- // Make sure no contact has offline status for any reason on first time run
- if (g_plugin.getByte("FirstTime", 100) == 100) {
- for (auto &hContact : Contacts(MODULENAME))
- g_plugin.setWord(hContact, "Status", ID_STATUS_ONLINE);
-
- g_plugin.setByte("FirstTime", 1);
- }
-
- g_plugin.setByte(OFFLINE_STATUS, bpStatus == ID_STATUS_OFFLINE);
- return 0;
-}
-
-//=======================================================
-// GetStatus
-// =======================================================
-
-INT_PTR GetStatus(WPARAM, LPARAM)
-{
- if (bpStatus == ID_STATUS_ONLINE)
- return ID_STATUS_ONLINE;
- if (bpStatus == ID_STATUS_AWAY)
- return ID_STATUS_AWAY;
- if (bpStatus == ID_STATUS_NA)
- return ID_STATUS_NA;
- if (bpStatus == ID_STATUS_OCCUPIED)
- return ID_STATUS_OCCUPIED;
- if (bpStatus == ID_STATUS_DND)
- return ID_STATUS_DND;
- return ID_STATUS_OFFLINE;
-}
-
-//=======================================================
-// BPLoadIcon
-// =======================================================
-
-INT_PTR BPLoadIcon(WPARAM wParam, LPARAM)
-{
- UINT id;
-
- switch (wParam & 0xFFFF) {
- case PLI_PROTOCOL:
- id = IDI_SITE;
- break;
- default:
- return 0;
- }
- return (INT_PTR)LoadImage(g_plugin.getInst(), MAKEINTRESOURCE(id), IMAGE_ICON,
- GetSystemMetrics(wParam & PLIF_SMALL ? SM_CXSMICON : SM_CXICON),
- GetSystemMetrics(wParam & PLIF_SMALL ? SM_CYSMICON : SM_CYICON), 0);
-}
-
-/*****************************************************************************/
-static void __cdecl BasicSearchTimerProc(wchar_t *pszNick)
-{
- PROTOSEARCHRESULT psr = { sizeof(psr) };
- psr.flags = PSR_UNICODE;
- psr.nick.w = pszNick;
-
- // broadcast the search result
- ProtoBroadcastAck(MODULENAME, NULL, ACKTYPE_SEARCH, ACKRESULT_DATA, (HANDLE)1, (LPARAM)&psr);
- ProtoBroadcastAck(MODULENAME, NULL, ACKTYPE_SEARCH, ACKRESULT_SUCCESS, (HANDLE)1, 0);
-
- // exit the search
- searchId = -1;
- mir_free(pszNick);
-}
-
-INT_PTR BasicSearch(WPARAM, LPARAM lParam)
-{
- if (searchId != -1)
- return 0; // only one search at a time
-
- searchId = 1;
-
- // create a thread for the ID search
- mir_forkThread<wchar_t>(BasicSearchTimerProc, mir_wstrdup((const wchar_t*)lParam));
- return searchId;
-}
-
-/*****************************************************************************/
-INT_PTR AddToList(WPARAM, LPARAM lParam)
-{
- PROTOSEARCHRESULT *psr = (PROTOSEARCHRESULT *)lParam;
- DBVARIANT dbv;
- int sameurl = 0;
- int samename = 0;
-
- if (psr == nullptr)
- return 0;
- if (psr->nick.w == nullptr) {
- WErrorPopup((UINT_PTR)"ERROR", TranslateT("Please select site in Find/Add contacts..."));
- return 0;
- }
- // if contact with the same ID was not found, add it
- if (psr->cbSize != sizeof(PROTOSEARCHRESULT))
- return NULL;
- // search for existing contact
- for (auto &hContact : Contacts(MODULENAME)) {
- // check ID to see if the contact already exist in the database
- if (g_plugin.getWString(hContact, "URL", &dbv))
- continue;
- if (!mir_wstrcmpi(psr->nick.w, dbv.pwszVal)) {
- // remove the flag for not on list and hidden, thus make the
- // contact visible
- // and add them on the list
- sameurl++;
- if (db_get_b(hContact, "CList", "NotOnList", 1)) {
- db_unset(hContact, "CList", "NotOnList");
- db_unset(hContact, "CList", "Hidden");
- }
- }
- db_free(&dbv);
- }
-
- MCONTACT hContact = db_add_contact();
- Proto_AddToContact(hContact, MODULENAME);
-
- /////////write to db
- g_plugin.setByte(hContact, ON_TOP_KEY, 0);
- g_plugin.setByte(hContact, DBLE_WIN_KEY, 1);
- g_plugin.setString(hContact, END_STRING_KEY, "");
- g_plugin.setByte(hContact, RWSPACE_KEY, 1);
-
- //Convert url into a name for contact
- wchar_t Cnick[255];
- if (psr->nick.w != nullptr)
- wcsncpy(Cnick, psr->nick.w, _countof(Cnick));
- else
- Cnick[0] = 0;
-
- wchar_t *Oldnick = wcsstr(Cnick, L"://");
- if (Oldnick != nullptr)
- Oldnick += 3;
- else
- Oldnick = Cnick;
-
- wchar_t *Newnick = wcsstr(Oldnick, L"www.");
- if (Newnick != nullptr)
- Newnick += 4;
- else {
- Newnick = wcsstr(Oldnick, L"WWW.");
- if (Newnick != nullptr)
- Newnick += 4;
- else
- Newnick = Oldnick;
- }
-
- wchar_t *Nend = wcschr(Newnick, '.');
- if (Nend) *Nend = '\0';
-
- for (auto &hContact2 : Contacts(MODULENAME)) {
- if (!db_get_ws(hContact2, MODULENAME, PRESERVE_NAME_KEY, &dbv)) {
- if (!mir_wstrcmpi(Newnick, dbv.pwszVal)) {
- // remove the flag for not on list and hidden, thus make the
- // contact visible
- // and add them on the list
- samename++;
- if (db_get_b(hContact2, "CList", "NotOnList", 1)) {
- db_unset(hContact2, "CList", "NotOnList");
- db_unset(hContact2, "CList", "Hidden");
- }
- db_free(&dbv);
- }
- }
- db_free(&dbv);
- }
-
- if ((sameurl > 0) || (samename > 0)) // contact has the same url or name as another contact, add rand num to name
- {
- srand((unsigned)time(0));
-
- wchar_t ranStr[10];
- _itow((int)10000 * rand() / (RAND_MAX + 1.0), ranStr, 10);
- mir_wstrcat(Newnick, ranStr);
- }
- //end convert
-
- db_set_ws(hContact, "CList", "MyHandle", Newnick);
- g_plugin.setWString(hContact, PRESERVE_NAME_KEY, Newnick);
- g_plugin.setWString(hContact, "Nick", Newnick);
- g_plugin.setByte(hContact, CLEAR_DISPLAY_KEY, 1);
- g_plugin.setString(hContact, START_STRING_KEY, "");
- g_plugin.setWString(hContact, URL_KEY, psr->nick.w);
- g_plugin.setWString(hContact, "Homepage", psr->nick.w);
- g_plugin.setByte(hContact, U_ALLSITE_KEY, 1);
- g_plugin.setWord(hContact, "Status", ID_STATUS_ONLINE);
-
- // ignore status change
- db_set_dw(hContact, "Ignore", "Mask", 8);
-
- Sleep(2);
-
- db_free(&dbv);
-
-
- return (INT_PTR)hContact;
-}
-
-/*****************************************************************************/
-
-static void __cdecl AckFunc(void*)
-{
- for (auto &hContact : Contacts(MODULENAME))
- ProtoBroadcastAck(MODULENAME, hContact, ACKTYPE_GETINFO, ACKRESULT_SUCCESS, (HANDLE)1, 0);
-}
-
-INT_PTR GetInfo(WPARAM, LPARAM)
-{
- mir_forkthread(AckFunc);
- return 1;
-}
diff --git a/plugins/WebView/webview.vcxproj b/plugins/WebView/webview.vcxproj
deleted file mode 100644
index e8e88065da..0000000000
--- a/plugins/WebView/webview.vcxproj
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectName>WebView</ProjectName>
- <ProjectGuid>{475ED6ED-C311-4188-ACB2-1C41830B22EE}</ProjectGuid>
- </PropertyGroup>
- <ImportGroup Label="PropertySheets">
- <Import Project="$(ProjectDir)..\..\build\vc.common\plugin.props" />
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/plugins/WebView/webview.vcxproj.filters b/plugins/WebView/webview.vcxproj.filters
deleted file mode 100644
index de5ad9f66c..0000000000
--- a/plugins/WebView/webview.vcxproj.filters
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(ProjectDir)..\..\build\vc.common\common.filters" />
-</Project> \ No newline at end of file