summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpescuma <pescuma@c086bb3d-8645-0410-b8da-73a8550f86e7>2008-03-17 01:25:20 +0000
committerpescuma <pescuma@c086bb3d-8645-0410-b8da-73a8550f86e7>2008-03-17 01:25:20 +0000
commitb1bcfe11e40f2eb7e53ef0f8d992df0fb179b173 (patch)
tree636f4cf1261e469e708f200800880a2a805e1c9b
parentd99eb14835a65e3cf3a97683f215dfb83565b844 (diff)
Allow URLs in emoticon packs
Flash emoticons Added Skype and Sametime emoticons Option to select which frame to show in selection window (for animated gif and swf) git-svn-id: http://pescuma.googlecode.com/svn/trunk/Miranda@70 c086bb3d-8645-0410-b8da-73a8550f86e7
-rw-r--r--Plugins/emoticons/Docs/emoticons_changelog.txt3
-rw-r--r--Plugins/emoticons/Docs/emoticons_readme.txt2
-rw-r--r--Plugins/emoticons/Docs/emoticons_version.txt2
-rw-r--r--Plugins/emoticons/OleImage.cpp329
-rw-r--r--Plugins/emoticons/OleImage.h9
-rw-r--r--Plugins/emoticons/commons.h11
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Originals/Originals.mep445
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/Tango.mep2
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AD.pngbin0 -> 643 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AE.pngbin0 -> 408 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AF.pngbin0 -> 604 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AG.pngbin0 -> 591 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AI.pngbin0 -> 643 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AL.pngbin0 -> 600 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AM.pngbin0 -> 497 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AN.pngbin0 -> 488 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AO.pngbin0 -> 428 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AQ.pngbin0 -> 575 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AR.pngbin0 -> 506 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AS.pngbin0 -> 647 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AT.pngbin0 -> 403 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AU.pngbin0 -> 673 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AW.pngbin0 -> 524 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AZ.pngbin0 -> 589 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BA.pngbin0 -> 593 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BB.pngbin0 -> 585 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BD.pngbin0 -> 504 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BE.pngbin0 -> 449 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BF.pngbin0 -> 497 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BG.pngbin0 -> 462 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BH.pngbin0 -> 457 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BI.pngbin0 -> 675 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BJ.pngbin0 -> 486 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BM.pngbin0 -> 611 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BN.pngbin0 -> 639 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BO.pngbin0 -> 500 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BR.pngbin0 -> 593 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BS.pngbin0 -> 526 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BT.pngbin0 -> 631 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BW.pngbin0 -> 443 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BY.pngbin0 -> 514 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BZ.pngbin0 -> 600 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CA.pngbin0 -> 628 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CC.pngbin0 -> 625 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CD.pngbin0 -> 528 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CF.pngbin0 -> 614 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CG.pngbin0 -> 521 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CH.pngbin0 -> 367 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CI.pngbin0 -> 453 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CK.pngbin0 -> 586 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CL.pngbin0 -> 450 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CM.pngbin0 -> 525 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CN.pngbin0 -> 472 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CO.pngbin0 -> 483 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CR.pngbin0 -> 477 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CS.pngbin0 -> 439 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CU.pngbin0 -> 563 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CV.pngbin0 -> 529 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CX.pngbin0 -> 608 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CY.pngbin0 -> 428 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CZ.pngbin0 -> 476 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DE.pngbin0 -> 545 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DJ.pngbin0 -> 572 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DK.pngbin0 -> 495 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DM.pngbin0 -> 620 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DO.pngbin0 -> 508 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DZ.pngbin0 -> 582 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EC.pngbin0 -> 500 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EE.pngbin0 -> 429 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EG.pngbin0 -> 465 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EH.pngbin0 -> 508 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ER.pngbin0 -> 653 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ES.pngbin0 -> 469 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ET.pngbin0 -> 592 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EU.pngbin0 -> 479 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FI.pngbin0 -> 489 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FJ.pngbin0 -> 610 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FK.pngbin0 -> 648 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FM.pngbin0 -> 552 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FO.pngbin0 -> 474 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FR.pngbin0 -> 545 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GA.pngbin0 -> 489 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GB.pngbin0 -> 599 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GD.pngbin0 -> 637 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GE.pngbin0 -> 594 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GF.pngbin0 -> 545 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GH.pngbin0 -> 490 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GI.pngbin0 -> 463 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GL.pngbin0 -> 470 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GM.pngbin0 -> 493 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GN.pngbin0 -> 480 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GP.pngbin0 -> 488 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GQ.pngbin0 -> 537 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GR.pngbin0 -> 487 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GT.pngbin0 -> 493 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GU.pngbin0 -> 509 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GW.pngbin0 -> 516 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GY.pngbin0 -> 645 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HK.pngbin0 -> 527 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HM.pngbin0 -> 673 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HN.pngbin0 -> 537 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HR.pngbin0 -> 524 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HT.pngbin0 -> 487 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HU.pngbin0 -> 432 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ID.pngbin0 -> 430 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IE.pngbin0 -> 481 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IL.pngbin0 -> 431 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IN.pngbin0 -> 503 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IO.pngbin0 -> 658 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IQ.pngbin0 -> 515 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IR.pngbin0 -> 512 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IS.pngbin0 -> 532 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IT.pngbin0 -> 420 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_JM.pngbin0 -> 637 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_JO.pngbin0 -> 473 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_JP.pngbin0 -> 420 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KE.pngbin0 -> 569 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KG.pngbin0 -> 510 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KH.pngbin0 -> 549 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KI.pngbin0 -> 656 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KM.pngbin0 -> 577 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KN.pngbin0 -> 604 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KP.pngbin0 -> 561 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KR.pngbin0 -> 592 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KW.pngbin0 -> 486 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KY.pngbin0 -> 643 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KZ.pngbin0 -> 616 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LA.pngbin0 -> 563 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LB.pngbin0 -> 517 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LC.pngbin0 -> 520 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LI.pngbin0 -> 537 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LK.pngbin0 -> 627 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LR.pngbin0 -> 466 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LS.pngbin0 -> 628 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LT.pngbin0 -> 508 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LU.pngbin0 -> 481 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LV.pngbin0 -> 465 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LY.pngbin0 -> 419 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MA.pngbin0 -> 432 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MC.pngbin0 -> 380 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MD.pngbin0 -> 566 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ME.pngbin0 -> 448 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MG.pngbin0 -> 453 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MH.pngbin0 -> 628 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MK.pngbin0 -> 664 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ML.pngbin0 -> 474 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MM.pngbin0 -> 483 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MN.pngbin0 -> 492 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MO.pngbin0 -> 588 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MP.pngbin0 -> 597 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MQ.pngbin0 -> 655 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MR.pngbin0 -> 569 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MS.pngbin0 -> 614 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MT.pngbin0 -> 420 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MU.pngbin0 -> 496 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MV.pngbin0 -> 542 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MW.pngbin0 -> 529 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MX.pngbin0 -> 574 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MY.pngbin0 -> 571 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MZ.pngbin0 -> 584 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NA.pngbin0 -> 647 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NC.pngbin0 -> 591 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NE.pngbin0 -> 537 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NF.pngbin0 -> 602 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NG.pngbin0 -> 482 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NI.pngbin0 -> 508 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NL.pngbin0 -> 453 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NO.pngbin0 -> 512 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NP.pngbin0 -> 443 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NR.pngbin0 -> 527 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NU.pngbin0 -> 572 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NZ.pngbin0 -> 639 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_OM.pngbin0 -> 478 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PA.pngbin0 -> 519 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PE.pngbin0 -> 397 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PF.pngbin0 -> 498 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PG.pngbin0 -> 593 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PH.pngbin0 -> 538 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PK.pngbin0 -> 569 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PL.pngbin0 -> 374 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PM.pngbin0 -> 689 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PN.pngbin0 -> 657 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PR.pngbin0 -> 556 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PS.pngbin0 -> 472 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PT.pngbin0 -> 554 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PW.pngbin0 -> 550 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PY.pngbin0 -> 473 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_QA.pngbin0 -> 450 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RE.pngbin0 -> 545 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RO.pngbin0 -> 495 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RS.pngbin0 -> 423 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RU.pngbin0 -> 420 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RW.pngbin0 -> 533 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SA.pngbin0 -> 551 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SB.pngbin0 -> 624 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SC.pngbin0 -> 608 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SD.pngbin0 -> 492 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SE.pngbin0 -> 542 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SG.pngbin0 -> 468 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SH.pngbin0 -> 645 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SI.pngbin0 -> 510 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SK.pngbin0 -> 562 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SL.pngbin0 -> 436 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SM.pngbin0 -> 502 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SN.pngbin0 -> 532 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SO.pngbin0 -> 527 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SR.pngbin0 -> 513 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ST.pngbin0 -> 584 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SV.pngbin0 -> 501 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SY.pngbin0 -> 422 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SZ.pngbin0 -> 643 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TC.pngbin0 -> 624 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TD.pngbin0 -> 570 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TF.pngbin0 -> 527 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TG.pngbin0 -> 562 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TH.pngbin0 -> 452 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TJ.pngbin0 -> 496 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TK.pngbin0 -> 638 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TL.pngbin0 -> 514 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TM.pngbin0 -> 593 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TN.pngbin0 -> 495 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TO.pngbin0 -> 426 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TR.pngbin0 -> 492 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TT.pngbin0 -> 617 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TV.pngbin0 -> 536 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TW.pngbin0 -> 465 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TZ.pngbin0 -> 642 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UA.pngbin0 -> 446 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UG.pngbin0 -> 531 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_US.pngbin0 -> 609 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UY.pngbin0 -> 532 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UZ.pngbin0 -> 515 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VA.pngbin0 -> 553 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VC.pngbin0 -> 577 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VE.pngbin0 -> 528 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VG.pngbin0 -> 630 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VI.pngbin0 -> 616 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VN.pngbin0 -> 474 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VU.pngbin0 -> 604 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_WF.pngbin0 -> 554 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_WS.pngbin0 -> 476 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_YE.pngbin0 -> 413 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_YT.pngbin0 -> 593 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ZA.pngbin0 -> 642 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ZM.pngbin0 -> 500 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ZW.pngbin0 -> 574 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/money.png (renamed from Plugins/emoticons/data/Customize/Emoticons/Tango/coins.png)bin1330 -> 1330 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/talking.pngbin0 -> 1257 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/usa.pngbin540 -> 0 bytes
-rw-r--r--Plugins/emoticons/data/Plugins/Emoticons/MSN.emo2
-rw-r--r--Plugins/emoticons/data/Plugins/Emoticons/SAMETIME.emo18
-rw-r--r--Plugins/emoticons/data/Plugins/Emoticons/Skype.emo333
-rw-r--r--Plugins/emoticons/data/Plugins/Emoticons/YAHOO.emo9
-rw-r--r--Plugins/emoticons/data/Plugins/Emoticons/downloading.gifbin1849 -> 0 bytes
-rw-r--r--Plugins/emoticons/emoticons.cpp380
-rw-r--r--Plugins/emoticons/emoticons.dsp8
-rw-r--r--Plugins/emoticons/flash9e.tlh338
-rw-r--r--Plugins/emoticons/selwin.cpp8
-rw-r--r--Plugins/emoticons/selwin.h1
259 files changed, 1845 insertions, 55 deletions
diff --git a/Plugins/emoticons/Docs/emoticons_changelog.txt b/Plugins/emoticons/Docs/emoticons_changelog.txt
index 3faea7b..1432e6a 100644
--- a/Plugins/emoticons/Docs/emoticons_changelog.txt
+++ b/Plugins/emoticons/Docs/emoticons_changelog.txt
@@ -4,6 +4,9 @@ Changelog:
. 0.0.1.6
+ Allow URLs in emoticon packs
+ + Flash emoticons
+ + Added Skype and Sametime emoticons
+ + Option to select which frame to show in selection window (for animated gif and swf)
. 0.0.1.5
+ Added MySpace and AIM emoticons
diff --git a/Plugins/emoticons/Docs/emoticons_readme.txt b/Plugins/emoticons/Docs/emoticons_readme.txt
index 824bfac..f4df80b 100644
--- a/Plugins/emoticons/Docs/emoticons_readme.txt
+++ b/Plugins/emoticons/Docs/emoticons_readme.txt
@@ -26,7 +26,7 @@ Creator: <Artist name>
Updater URL: <URL for updating this pack - not yet implemented>
Also, the mep file can expecify the filename for an emoticon, in a line like:
-"<The unique name of the emoticon>" = "<Relative path from pack foler>"
+"<The unique name of the emoticon>" = "<Relative path from pack foler>", <Frame number, starting in 1 - optional>
For example:
"smile" = "01.gif"
This will affect all protocols. If you want to change the image for a protocol only, you can write:
diff --git a/Plugins/emoticons/Docs/emoticons_version.txt b/Plugins/emoticons/Docs/emoticons_version.txt
index cb5f25a..3fdee38 100644
--- a/Plugins/emoticons/Docs/emoticons_version.txt
+++ b/Plugins/emoticons/Docs/emoticons_version.txt
@@ -1 +1 @@
-Emoticons 0.0.1.5 \ No newline at end of file
+Emoticons 0.0.1.6 \ No newline at end of file
diff --git a/Plugins/emoticons/OleImage.cpp b/Plugins/emoticons/OleImage.cpp
index 538545b..e661353 100644
--- a/Plugins/emoticons/OleImage.cpp
+++ b/Plugins/emoticons/OleImage.cpp
@@ -12,6 +12,253 @@ typedef map<UINT_PTR, OleImage *> ImageTimerMapType;
static ImageTimerMapType timers;
+class FlashWrapper : virtual public IOleClientSite,
+ virtual public IOleInPlaceSiteWindowless,
+ virtual public IOleInPlaceFrame,
+ virtual public IStorage
+{
+public:
+ SIZE size;
+ RECT pos;
+ OleImage *owner;
+ IShockwaveFlash *flash;
+ IOleObject *flashOleObject;
+ IViewObjectEx *flashViewObject;
+ IOleInPlaceObjectWindowless *flashInPlaceObjWindowless;
+
+ FlashWrapper(OleImage *anOwner, const char *filename)
+ {
+ flash = NULL;
+ flashOleObject = NULL;
+ flashViewObject = NULL;
+ flashInPlaceObjWindowless = NULL;
+
+ owner = anOwner;
+
+ HRESULT hr;
+ long readyState;
+ double val;
+
+ hr = OleCreate(__uuidof(ShockwaveFlash), IID_IOleObject, OLERENDER_DRAW, 0,
+ (IOleClientSite *) this, (IStorage *) this, (void **) &flashOleObject);
+ if (FAILED(hr)) goto err;
+
+ hr = OleSetContainedObject(flashOleObject, TRUE);
+ if (FAILED(hr)) goto err;
+
+ hr = flashOleObject->QueryInterface(__uuidof(IShockwaveFlash), (void **) &flash);
+ if (FAILED(hr)) goto err;
+
+ hr = flashOleObject->QueryInterface(__uuidof(IViewObjectEx), (void **) &flashViewObject);
+ if (FAILED(hr)) goto err;
+
+ hr = flashOleObject->QueryInterface(__uuidof(IOleInPlaceObjectWindowless), (void **) &flashInPlaceObjWindowless);
+ if (FAILED(hr)) goto err;
+
+ flash->put_WMode(L"transparent");
+ //flash->put_Scale(L"showAll");
+ flash->put_ScaleMode(0);
+ flash->put_BackgroundColor(0x00000000);
+ flash->put_EmbedMovie(TRUE);
+ flash->put_Loop(TRUE);
+
+ {
+ WCHAR *tmp = mir_a2u(filename);
+ BSTR url = SysAllocString(tmp);
+
+ hr = flash->LoadMovie(0, url);
+
+ SysFreeString(url);
+ mir_free(tmp);
+ }
+ if (FAILED(hr)) goto err;
+
+ hr = flash->get_ReadyState(&readyState);
+ if (FAILED(hr)) goto err;
+ if (readyState != 3 && readyState != 4) goto err;
+
+ hr = flash->TGetPropertyAsNumber(L"/", 8, &val);
+ if (FAILED(hr)) goto err;
+ size.cx = (long)(val + 0.5);
+
+ hr = flash->TGetPropertyAsNumber(L"/", 9, &val);
+ if (FAILED(hr)) goto err;
+ size.cy = (long)(val + 0.5);
+
+ pos.left = 0;
+ pos.top = 0;
+ pos.right = size.cx;
+ pos.bottom = size.cy;
+
+ flashInPlaceObjWindowless->SetObjectRects(&pos, &pos);
+
+ hr = flash->Play();
+ if (FAILED(hr)) goto err;
+
+ hr = flashOleObject->DoVerb(OLEIVERB_SHOW, NULL, (IOleClientSite *) this, 0, NULL, NULL);
+ if (FAILED(hr)) goto err;
+
+ return;
+
+err:
+ Destroy();
+ }
+
+ virtual ~FlashWrapper()
+ {
+ Destroy();
+ }
+
+ void Destroy()
+ {
+ if (flashOleObject != NULL)
+ flashOleObject->Close(OLECLOSE_NOSAVE);
+ RELEASE(flashViewObject)
+ RELEASE(flashInPlaceObjWindowless)
+ RELEASE(flashOleObject)
+ RELEASE(flash)
+ }
+
+ BOOL isValid()
+ {
+ return flash != NULL;
+ }
+
+ void SetPos(const RECT &aPos)
+ {
+ if (!isValid())
+ return;
+
+ pos = aPos;
+ flashInPlaceObjWindowless->SetObjectRects(&pos, &pos);
+ }
+
+ void Draw(HDC hdc)
+ {
+ if (!isValid())
+ return;
+
+ OleDraw(flashViewObject, DVASPECT_TRANSPARENT, hdc, &pos);
+ }
+
+
+ //interface methods
+
+ //IUnknown
+ HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void ** ppvObject)
+ {
+ if (IsEqualGUID(riid, IID_IUnknown))
+ *ppvObject = (void*)(this);
+ else if (IsEqualGUID(riid, IID_IOleInPlaceSite))
+ *ppvObject = (void*)dynamic_cast<IOleInPlaceSite *>(this);
+ else if (IsEqualGUID(riid, IID_IOleInPlaceSiteEx))
+ *ppvObject = (void*)dynamic_cast<IOleInPlaceSiteEx *>(this);
+ else if (IsEqualGUID(riid, IID_IOleInPlaceSiteWindowless))
+ *ppvObject = (void*)dynamic_cast<IOleInPlaceSiteWindowless *>(this);
+ else if (IsEqualGUID(riid, IID_IStorage))
+ *ppvObject = (void*)dynamic_cast<IStorage *>(this);
+ else if (IsEqualGUID(riid, IID_IOleInPlaceFrame))
+ *ppvObject = (void*)dynamic_cast<IOleInPlaceFrame *>(this);
+ else
+ *ppvObject = 0;
+ if (!(*ppvObject))
+ return E_NOINTERFACE; //if dynamic_cast returned 0
+ return S_OK;
+ }
+ ULONG STDMETHODCALLTYPE AddRef() { return 1; }
+ ULONG STDMETHODCALLTYPE Release() { return 1; }
+
+
+ //IOleClientSite
+ virtual HRESULT STDMETHODCALLTYPE SaveObject() { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker ** ppmk) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE GetContainer(LPOLECONTAINER FAR* ppContainer) { *ppContainer = 0; return E_NOINTERFACE; }
+ virtual HRESULT STDMETHODCALLTYPE ShowObject() { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE OnShowWindow(BOOL fShow) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE RequestNewObjectLayout() { return E_NOTIMPL; }
+
+ //IOleInPlaceSite
+ virtual HRESULT STDMETHODCALLTYPE GetWindow(HWND FAR* lphwnd){ *lphwnd = 0; return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL fEnterMode) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE CanInPlaceActivate() { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE OnInPlaceActivate() { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE OnUIActivate() { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE GetWindowContext(LPOLEINPLACEFRAME FAR* lplpFrame,LPOLEINPLACEUIWINDOW FAR* lplpDoc,LPRECT lprcPosRect,LPRECT lprcClipRect,LPOLEINPLACEFRAMEINFO lpFrameInfo)
+ {
+ *lplpFrame = (LPOLEINPLACEFRAME)this;
+
+ *lplpDoc = 0;
+
+ lpFrameInfo->fMDIApp = FALSE;
+ lpFrameInfo->hwndFrame = 0;
+ lpFrameInfo->haccel = 0;
+ lpFrameInfo->cAccelEntries = 0;
+
+ *lprcPosRect = pos;
+ *lprcClipRect = pos;
+ return S_OK;
+ }
+ virtual HRESULT STDMETHODCALLTYPE Scroll(SIZE scrollExtent) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE OnUIDeactivate(BOOL fUndoable) { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE OnInPlaceDeactivate() { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE DiscardUndoState() { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE DeactivateAndUndo() { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE OnPosRectChange(LPCRECT lprcPosRect) { return S_OK; }
+
+ //IOleInPlaceSiteEx
+ virtual HRESULT STDMETHODCALLTYPE OnInPlaceActivateEx(BOOL __RPC_FAR *pfNoRedraw, DWORD dwFlags) { if (pfNoRedraw) *pfNoRedraw = FALSE; return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE OnInPlaceDeactivateEx(BOOL fNoRedraw) { return S_FALSE; }
+ virtual HRESULT STDMETHODCALLTYPE RequestUIActivate(void) { return S_FALSE; }
+
+ //IOleInPlaceSiteWindowless
+ virtual HRESULT STDMETHODCALLTYPE CanWindowlessActivate(void) { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE GetCapture(void) { return S_FALSE; }
+ virtual HRESULT STDMETHODCALLTYPE SetCapture(BOOL fCapture) { return S_FALSE; }
+ virtual HRESULT STDMETHODCALLTYPE GetFocus(void) { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE SetFocus(BOOL fFocus) { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE GetDC(LPCRECT pRect, DWORD grfFlags, HDC __RPC_FAR *phDC) { return S_FALSE; }
+ virtual HRESULT STDMETHODCALLTYPE ReleaseDC(HDC hDC) { return S_FALSE; }
+ virtual HRESULT STDMETHODCALLTYPE InvalidateRect(LPCRECT pRect,BOOL fErase)
+ {
+ owner->OnImageChange();
+ return S_OK;
+ }
+ virtual HRESULT STDMETHODCALLTYPE InvalidateRgn(HRGN hRGN, BOOL fErase) { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE ScrollRect(INT dx, INT dy, LPCRECT pRectScroll, LPCRECT pRectClip) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE AdjustRect(LPRECT prc) { return S_FALSE; }
+ virtual HRESULT STDMETHODCALLTYPE OnDefWindowMessage(UINT msg, WPARAM wParam, LPARAM lParam, LRESULT __RPC_FAR *plResult) { return S_FALSE; }
+
+ //IOleInPlaceFrame
+ virtual HRESULT STDMETHODCALLTYPE GetBorder(LPRECT lprectBorder) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE RequestBorderSpace(LPCBORDERWIDTHS pborderwidths) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE SetBorderSpace(LPCBORDERWIDTHS pborderwidths) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE SetActiveObject(IOleInPlaceActiveObject *pActiveObject, LPCOLESTR pszObjName) { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE InsertMenus(HMENU hmenuShared, LPOLEMENUGROUPWIDTHS lpMenuWidths) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE SetMenu(HMENU hmenuShared, HOLEMENU holemenu, HWND hwndActiveObject) { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE RemoveMenus(HMENU hmenuShared) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE SetStatusText(LPCOLESTR pszStatusText) { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE EnableModeless(BOOL fEnable) { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(LPMSG lpmsg, WORD wID) { return E_NOTIMPL; }
+
+ //IStorage
+ virtual HRESULT STDMETHODCALLTYPE CreateStream(const WCHAR *pwcsName, DWORD grfMode, DWORD reserved1, DWORD reserved2, IStream **ppstm) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE OpenStream(const WCHAR * pwcsName, void *reserved1, DWORD grfMode, DWORD reserved2, IStream **ppstm) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE CreateStorage(const WCHAR *pwcsName, DWORD grfMode, DWORD reserved1, DWORD reserved2, IStorage **ppstg) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE OpenStorage(const WCHAR * pwcsName, IStorage * pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage **ppstg) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE CopyTo(DWORD ciidExclude, IID const *rgiidExclude, SNB snbExclude,IStorage *pstgDest) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE MoveElementTo(const OLECHAR *pwcsName,IStorage * pstgDest, const OLECHAR *pwcsNewName, DWORD grfFlags) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE Commit(DWORD grfCommitFlags) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE Revert() { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE EnumElements(DWORD reserved1, void * reserved2, DWORD reserved3, IEnumSTATSTG ** ppenum) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE DestroyElement(const OLECHAR *pwcsName) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE RenameElement(const WCHAR *pwcsOldName, const WCHAR *pwcsNewName) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE SetElementTimes(const WCHAR *pwcsName, FILETIME const *pctime, FILETIME const *patime, FILETIME const *pmtime) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE SetClass(REFCLSID clsid) { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE SetStateBits(DWORD grfStateBits, DWORD grfMask) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE Stat(STATSTG * pstatstg, DWORD grfStatFlag) { return E_NOTIMPL; }
+
+
+};
OleImage::OleImage(const char *aFilename, const TCHAR *aText, const TCHAR *aTooltip)
@@ -23,6 +270,7 @@ OleImage::OleImage(const char *aFilename, const TCHAR *aText, const TCHAR *aTool
filename = mir_strdup(aFilename);
text = mir_tstrdup(aText);
closed = FALSE;
+ animated = FALSE;
if (aTooltip == NULL)
tooltip = NULL;
@@ -37,6 +285,7 @@ OleImage::OleImage(const char *aFilename, const TCHAR *aText, const TCHAR *aTool
#endif
}
+ flashWrapper = NULL;
clientSite = NULL;
oleAdviseHolder = NULL;
viewAdviseSink = NULL;
@@ -109,10 +358,13 @@ BOOL OleImage::LoadImages()
sizel.cx = 0;
sizel.cy = 0;
- animated = LoadAnimatedGif();
- if (!animated)
- if (!LoadStaticImage())
- return FALSE;
+ if (!LoadFlash())
+ {
+ animated = LoadAnimatedGif();
+ if (!animated)
+ if (!LoadStaticImage())
+ return FALSE;
+ }
return TRUE;
}
@@ -120,7 +372,11 @@ BOOL OleImage::LoadImages()
void OleImage::DestroyImages()
{
- if (animated)
+ if (flashWrapper)
+ {
+ DestroyFlash();
+ }
+ else if (animated)
{
DestroyAnimatedGif();
}
@@ -149,7 +405,7 @@ const TCHAR * OleImage::GetText() const
BOOL OleImage::isValid() const
{
- return animated || si.hBmp != NULL;
+ return flashWrapper || animated || si.hBmp != NULL;
}
@@ -416,7 +672,13 @@ HRESULT STDMETHODCALLTYPE OleImage::Draw(/* [in] */ DWORD dwDrawAspect, /* [in]
int w = min(lprcBounds->right - lprcBounds->left, width);
int h = min(lprcBounds->bottom - lprcBounds->top, height);
- if (animated)
+ if (flashWrapper)
+ {
+ RECT r = { lprcBounds->left, lprcBounds->top, lprcBounds->right, lprcBounds->bottom };
+ flashWrapper->SetPos(r);
+ flashWrapper->Draw(hdcDraw);
+ }
+ else if (animated)
{
if (!ag.started)
AnimatedGifMountFrame();
@@ -865,19 +1127,22 @@ void OleImage::OnTimer()
{
KillTimer();
- // Move to next frame
- AnimatedGifDispodeFrame();
-
- int frame = ag.frame.num + 1;
- if (frame >= ag.frameCount)
+ if (animated)
{
- // Don't need fi data no more
- AnimatedGifDeleteTmpValues();
- frame = 0;
- }
+ // Move to next frame
+ AnimatedGifDispodeFrame();
+
+ int frame = ag.frame.num + 1;
+ if (frame >= ag.frameCount)
+ {
+ // Don't need fi data no more
+ AnimatedGifDeleteTmpValues();
+ frame = 0;
+ }
- ag.frame.num = frame;
- ag.started = FALSE;
+ ag.frame.num = frame;
+ ag.started = FALSE;
+ }
OnImageChange();
}
@@ -916,3 +1181,31 @@ void OleImage::KillTimer()
ag.timer = NULL;
}
}
+
+
+BOOL OleImage::LoadFlash()
+{
+ if (strcmp(&filename[strlen(filename)-4], ".swf") != 0)
+ return FALSE;
+
+ flashWrapper = new FlashWrapper(this, filename);
+ if (!flashWrapper->isValid())
+ {
+ DestroyFlash();
+ return FALSE;
+ }
+
+ width = flashWrapper->size.cx;
+ height = flashWrapper->size.cy;
+
+ return TRUE;
+}
+
+BOOL OleImage::DestroyFlash()
+{
+// delete flashWrapper;
+ flashWrapper->Destroy();
+ flashWrapper = NULL;
+
+ return TRUE;
+}
diff --git a/Plugins/emoticons/OleImage.h b/Plugins/emoticons/OleImage.h
index b91c15f..ef248a2 100644
--- a/Plugins/emoticons/OleImage.h
+++ b/Plugins/emoticons/OleImage.h
@@ -25,6 +25,8 @@ Boston, MA 02111-1307, USA.
// {2FD9449B-7EBB-476a-A9DD-AE61382CCE08}
static const GUID IID_IOleImage = { 0x2fd9449b, 0x7ebb, 0x476a, { 0xa9, 0xdd, 0xae, 0x61, 0x38, 0x2c, 0xce, 0x8 } };
+class FlashWrapper;
+
class OleImage : public IOleObject, public IViewObject, public ITooltipData
{
public:
@@ -79,6 +81,8 @@ public:
virtual HRESULT STDMETHODCALLTYPE SetTooltip(/* [in] */ BSTR aTooltip);
virtual HRESULT STDMETHODCALLTYPE GetTooltip(/* [out, retval] */ BSTR * aTooltip);
+ void OnImageChange();
+
protected:
char *filename;
TCHAR *text;
@@ -96,6 +100,8 @@ protected:
DWORD viewAdvf;
SIZEL sizel;
+ FlashWrapper *flashWrapper;
+
BOOL LoadImages();
void DestroyImages();
void CalcSize();
@@ -103,7 +109,6 @@ protected:
void KillTimer();
void Invalidate();
void SendOnViewChage();
- void OnImageChange();
void NotifyHpp();
BOOL LoadStaticImage();
@@ -113,6 +118,8 @@ protected:
void AnimatedGifDispodeFrame();
void AnimatedGifDeleteTmpValues();
void DestroyAnimatedGif();
+ BOOL LoadFlash();
+ BOOL DestroyFlash();
struct
{
diff --git a/Plugins/emoticons/commons.h b/Plugins/emoticons/commons.h
index 84d0abe..f36ba8a 100644
--- a/Plugins/emoticons/commons.h
+++ b/Plugins/emoticons/commons.h
@@ -32,6 +32,7 @@ Boston, MA 02111-1307, USA.
#include <richedit.h>
#include <tom.h>
#include <richole.h>
+#include "flash9e.tlh"
// Disable "...truncated to '255' characters in the debug information" warnings
@@ -92,8 +93,10 @@ extern PLUGINLINK *pluginLink;
extern FI_INTERFACE *fei;
extern HANDLE hChangedEvent;
-#define MIR_FREE(_X_) { mir_free(_X_); _X_ = NULL; }
#define MAX_REGS(_A_) ( sizeof(_A_) / sizeof(_A_[0]) )
+#define MIR_FREE(_X_) if (_X_ != NULL) { mir_free(_X_); _X_ = NULL; }
+#define RELEASE(_X_) if (_X_ != NULL) { _X_->Release(); _X_ = NULL; }
+
struct EmoticonPack;
@@ -108,8 +111,9 @@ struct EmoticonImage
// For selection window
HBITMAP img;
BOOL transparent;
+ int selectionFrame;
- EmoticonImage() : name(0), relPath(0), img(0), module(0), url(0) {}
+ EmoticonImage() : name(0), relPath(0), img(0), module(0), url(0), selectionFrame(0) {}
~EmoticonImage();
void Download();
@@ -124,13 +128,14 @@ struct Emoticon
{
char *name;
TCHAR *description;
+ char *group;
LIST<TCHAR> texts;
EmoticonImage *img;
// For selection window
HWND tt;
- Emoticon() : name(0), description(0), texts(20), img(0), tt(0) {}
+ Emoticon() : name(0), description(0), group(0), texts(20), img(0), tt(0) {}
~Emoticon();
};
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Originals/Originals.mep b/Plugins/emoticons/data/Customize/Emoticons/Originals/Originals.mep
index c33a3ee..c8421c0 100644
--- a/Plugins/emoticons/data/Customize/Emoticons/Originals/Originals.mep
+++ b/Plugins/emoticons/data/Customize/Emoticons/Originals/Originals.mep
@@ -1,7 +1,7 @@
Name: Original emoticons
# Google Talk
-"JGMAIL\smile" = "http://mail.google.com/mail/im/emoticons/smile.gif"
+"JGMAIL\smile" = "http://mail.google.com/mail/im/emoticons/smile.gif", 10
"JGMAIL\laugh" = "http://mail.google.com/mail/im/emoticons/grin.gif"
"JGMAIL\wink" = "http://mail.google.com/mail/im/emoticons/wink.gif"
"JGMAIL\crying" = "http://mail.google.com/mail/im/emoticons/cry.gif"
@@ -14,7 +14,8 @@ Name: Original emoticons
"JGMAIL\love" = "http://mail.google.com/mail/im/emoticons/heart.gif"
"JGMAIL\neutral" = "http://mail.google.com/mail/im/emoticons/straightface.gif"
"JGMAIL\monkey" = "http://mail.google.com/mail/im/emoticons/monkey.gif"
-"JGMAIL\rock" = "http://mail.google.com/mail/im/emoticons/rockout.gif"
+"JGMAIL\rock" = "http://mail.google.com/mail/im/emoticons/rockout.gif"
+"JGMAIL\love-over" = "http://talkgadget.google.com/talkgadget/emo/tg/common/heart_broken.swf", 10x10, 10
# MSN
# http://messenger.msn.com/Resource/Emoticons.aspx
@@ -86,4 +87,442 @@ Name: Original emoticons
"MSN\mobile" = "http://messenger.msn.com/Resource/emoticons/64_64.gif"
"MSN\rain" = "http://messenger.msn.com/Resource/emoticons/66_66.gif"
"MSN\thunder" = "http://messenger.msn.com/Resource/emoticons/73_73.gif"
-"MSN\coins" = "http://messenger.msn.com/Resource/emoticons/69_69.gif"
+"MSN\money" = "http://messenger.msn.com/Resource/emoticons/69_69.gif"
+
+# Yahoo
+# http://messenger.yahoo.com/emoticons.php
+# http://messenger.yahoo.com/hiddenemoticons.php
+"YAHOO\smile" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/1.gif"
+"YAHOO\sad" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/2.gif"
+"YAHOO\wink" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/3.gif"
+"YAHOO\smile-big" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/4.gif"
+"YAHOO\lashes" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/5.gif"
+"YAHOO\hug-left" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/6.gif"
+"YAHOO\question" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/7.gif"
+"YAHOO\in-love" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/8.gif"
+"YAHOO\embarrassed" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/9.gif"
+"YAHOO\tongue" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/10.gif"
+"YAHOO\kiss" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/11.gif"
+"YAHOO\love-over" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/12.gif"
+"YAHOO\shock" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/13.gif"
+"YAHOO\angry" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/14.gif"
+"YAHOO\mean" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/15.gif"
+"YAHOO\glass-cool" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/16.gif"
+"YAHOO\confused" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/17.gif"
+"YAHOO\sweat" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/18.gif"
+"YAHOO\devilish" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/19.gif"
+"YAHOO\crying" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/20.gif"
+"YAHOO\laugh" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/21.gif"
+"YAHOO\neutral" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/22.gif"
+"YAHOO\sarcastic" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/23.gif"
+"YAHOO\rotfl" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/24.gif"
+"YAHOO\angel" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/25.gif"
+"YAHOO\glass-nerdy" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/26.gif"
+"YAHOO\talktohand" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/27.gif"
+"YAHOO\call-me" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/101.gif"
+"YAHOO\on-the-phone" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/100.gif"
+"YAHOO\desperate" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/102.gif"
+"YAHOO\bye" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/103.gif"
+"YAHOO\time-out" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/104.gif"
+"YAHOO\desire" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/105.gif"
+"YAHOO\sleepy" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/28.gif"
+"YAHOO\eyeroll" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/29.gif"
+"YAHOO\loser" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/30.gif"
+"YAHOO\sick" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/31.gif"
+"YAHOO\quiet" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/32.gif"
+"YAHOO\arrogant" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/33.gif"
+"YAHOO\clown" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/34.gif"
+"YAHOO\silly" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/35.gif"
+"YAHOO\party" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/36.gif"
+"YAHOO\yawn" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/37.gif"
+"YAHOO\drool" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/38.gif"
+"YAHOO\thinking" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/39.gif"
+"YAHOO\doh" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/40.gif"
+"YAHOO\clap" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/41.gif"
+"YAHOO\nailbiting" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/42.gif"
+"YAHOO\hypnotized" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/43.gif"
+"YAHOO\lying" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/44.gif"
+"YAHOO\waiting" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/45.gif"
+"YAHOO\weep" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/46.gif"
+"YAHOO\mad-tongue" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/47.gif"
+"YAHOO\cowboy" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/48.gif"
+"YAHOO\dog" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/108.gif"
+"YAHOO\dont-know" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/106.gif"
+"YAHOO\not-listening" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/107.gif"
+"YAHOO\pig" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/49.gif"
+"YAHOO\cow" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/50.gif"
+"YAHOO\monkey" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/51.gif"
+"YAHOO\chicken" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/52.gif"
+"YAHOO\rose" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/53.gif"
+"YAHOO\clover" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/54.gif"
+"YAHOO\flag_US" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/55.gif"
+"YAHOO\pumpkin" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/56.gif"
+"YAHOO\coffee" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/57.gif"
+"YAHOO\lamp" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/58.gif"
+"YAHOO\skeleton" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/59.gif"
+"YAHOO\bug" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/60.gif"
+"YAHOO\alien" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/61.gif"
+"YAHOO\disapointed" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/62.gif"
+"YAHOO\pray" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/63.gif"
+"YAHOO\money" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/64.gif"
+"YAHOO\music" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/65.gif"
+"YAHOO\beat-up" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/66.gif"
+"YAHOO\peace" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/67.gif"
+"YAHOO\shame-on-you" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/68.gif"
+"YAHOO\dance" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/69.gif"
+"YAHOO\pick-fight" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/70.gif"
+"YAHOO\giggle" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/71.gif"
+"YAHOO\boring" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/76.gif"
+"YAHOO\worship" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/77.gif"
+"YAHOO\oh-go-on" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/78.gif"
+"YAHOO\star" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/79.gif"
+"YAHOO\male" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/72.gif"
+"YAHOO\female" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/74.gif"
+"YAHOO\yin-yang" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/75.gif"
+
+
+# Sametime
+# http://www-306.ibm.com/software/lotus/products/sametime/emoticons.html
+"SAMETIME\angel" = ""
+"SAMETIME\tongue" = ""
+"SAMETIME\shock" = ""
+"SAMETIME\embarrassed" = ""
+"SAMETIME\laugh" = ""
+"SAMETIME\crying" = ""
+"SAMETIME\shout" = ""
+"SAMETIME\wink" = "http://www-306.ibm.com/software/lotus/images/emoticon_wink.gif"
+"SAMETIME\sarcastic" = ""
+"SAMETIME\smile" = "http://www.ibm.com/software/lotus/images/emoticon_smile.gif"
+"SAMETIME\thinking" = ""
+"SAMETIME\confused" = ""
+"SAMETIME\sad" = "http://www.ibm.com/software/lotus/images/emoticon_frown.gif"
+"SAMETIME\lamp" = ""
+
+
+# Skype
+# http://www.skype-emoticons.com/
+
+"SKYPE\smile" = "http://www.skype-emoticons.com/images/emoticon-0100-smile.gif"
+"SKYPE\sad" = "http://www.skype-emoticons.com/images/emoticon-0101-sadsmile.gif"
+"SKYPE\laugh" = "http://www.skype-emoticons.com/images/emoticon-0102-bigsmile.gif"
+"SKYPE\glass-cool" = "http://www.skype-emoticons.com/images/emoticon-0103-cool.gif"
+"SKYPE\wink" = "http://www.skype-emoticons.com/images/emoticon-0105-wink.gif"
+"SKYPE\crying" = "http://www.skype-emoticons.com/images/emoticon-0106-crying.gif"
+"SKYPE\sweat" = "http://www.skype-emoticons.com/images/emoticon-0107-sweating.gif"
+"SKYPE\neutral" = "http://www.skype-emoticons.com/images/emoticon-0108-speechless.gif"
+"SKYPE\kiss" = "http://www.skype-emoticons.com/images/emoticon-0109-kiss.gif"
+"SKYPE\tongue" = "http://www.skype-emoticons.com/images/emoticon-0110-tongueout.gif"
+"SKYPE\embarrassed" = "http://www.skype-emoticons.com/images/emoticon-0111-blush.gif"
+"SKYPE\sarcastic" = "http://www.skype-emoticons.com/images/emoticon-0112-wondering.gif"
+"SKYPE\sleepy" = "http://www.skype-emoticons.com/images/emoticon-0113-sleepy.gif"
+"SKYPE\boring" = "http://www.skype-emoticons.com/images/emoticon-0114-dull.gif"
+"SKYPE\in-love" = "http://www.skype-emoticons.com/images/emoticon-0115-inlove.gif"
+"SKYPE\mean" = "http://www.skype-emoticons.com/images/emoticon-0116-evilgrin.gif"
+"SKYPE\talking" = "http://www.skype-emoticons.com/images/emoticon-0117-talking.gif"
+"SKYPE\yawn" = "http://www.skype-emoticons.com/images/emoticon-0118-yawn.gif"
+"SKYPE\sick" = "http://www.skype-emoticons.com/images/emoticon-0119-puke.gif"
+"SKYPE\doh" = "http://www.skype-emoticons.com/images/emoticon-0120-doh.gif"
+"SKYPE\angry" = "http://www.skype-emoticons.com/images/emoticon-0121-angry.gif"
+"SKYPE\eyeroll" = "http://www.skype-emoticons.com/images/emoticon-0122-itwasntme.gif"
+"SKYPE\party" = "http://www.skype-emoticons.com/images/emoticon-0123-party.gif"
+"SKYPE\confused" = "http://www.skype-emoticons.com/images/emoticon-0124-worried.gif"
+"SKYPE\curl-lip" = "http://www.skype-emoticons.com/images/emoticon-0125-mmm.gif"
+"SKYPE\glass-nerdy" = "http://www.skype-emoticons.com/images/emoticon-0126-nerd.gif"
+"SKYPE\shut-mouth" = "http://www.skype-emoticons.com/images/emoticon-0127-lipssealed.gif"
+"SKYPE\bye" = "http://www.skype-emoticons.com/images/emoticon-0128-hi.gif"
+"SKYPE\call-me" = "http://www.skype-emoticons.com/images/emoticon-0129-call.gif"
+"SKYPE\devilish" = "http://www.skype-emoticons.com/images/emoticon-0130-devil.gif"
+"SKYPE\angel" = "http://www.skype-emoticons.com/images/emoticon-0131-angel.gif"
+"SKYPE\envy" = "http://www.skype-emoticons.com/images/emoticon-0132-envy.gif"
+"SKYPE\wait" = "http://www.skype-emoticons.com/images/emoticon-0133-wait.gif"
+"SKYPE\bear" = "http://www.skype-emoticons.com/images/emoticon-0134-bear.gif"
+"SKYPE\make-up" = "http://www.skype-emoticons.com/images/emoticon-0135-makeup.gif"
+"SKYPE\giggle" = "http://www.skype-emoticons.com/images/emoticon-0136-giggle.gif"
+"SKYPE\clap" = "http://www.skype-emoticons.com/images/emoticon-0137-clapping.gif"
+"SKYPE\thinking" = "http://www.skype-emoticons.com/images/emoticon-0138-thinking.gif"
+"SKYPE\worship" = "http://www.skype-emoticons.com/images/emoticon-0139-bow.gif"
+"SKYPE\rotfl" = "http://www.skype-emoticons.com/images/emoticon-0140-rofl.gif"
+"SKYPE\whew" = "http://www.skype-emoticons.com/images/emoticon-0141-whew.gif"
+"SKYPE\smile-big" = "http://www.skype-emoticons.com/images/emoticon-0142-happy.gif"
+"SKYPE\smirk" = "http://www.skype-emoticons.com/images/emoticon-0143-smirk.gif"
+"SKYPE\nodding" = "http://www.skype-emoticons.com/images/emoticon-0144-nod.gif"
+"SKYPE\shaking" = "http://www.skype-emoticons.com/images/emoticon-0145-shake.gif"
+"SKYPE\punch" = "http://www.skype-emoticons.com/images/emoticon-0146-punch.gif"
+"SKYPE\emo" = "http://www.skype-emoticons.com/images/emoticon-0147-emo.gif"
+"SKYPE\yes" = "http://www.skype-emoticons.com/images/emoticon-0148-yes.gif"
+"SKYPE\no" = "http://www.skype-emoticons.com/images/emoticon-0149-no.gif"
+"SKYPE\handshake" = "http://www.skype-emoticons.com/images/emoticon-0150-handshake.gif"
+"SKYPE\skype" = "http://www.skype-emoticons.com/images/emoticon-0151-skype.gif"
+"SKYPE\love" = "http://www.skype-emoticons.com/images/emoticon-0152-heart.gif"
+"SKYPE\love-over" = "http://www.skype-emoticons.com/images/emoticon-0153-brokenheart.gif"
+"SKYPE\mail" = "http://www.skype-emoticons.com/images/emoticon-0154-mail.gif"
+"SKYPE\rose" = "http://www.skype-emoticons.com/images/emoticon-0155-flower.gif"
+"SKYPE\rain" = "http://www.skype-emoticons.com/images/emoticon-0156-rain.gif"
+"SKYPE\sun" = "http://www.skype-emoticons.com/images/emoticon-0157-sun.gif"
+"SKYPE\clock" = "http://www.skype-emoticons.com/images/emoticon-0158-time.gif"
+"SKYPE\music" = "http://www.skype-emoticons.com/images/emoticon-0159-music.gif"
+"SKYPE\film" = "http://www.skype-emoticons.com/images/emoticon-0160-movie.gif"
+"SKYPE\phone" = "http://www.skype-emoticons.com/images/emoticon-0161-phone.gif"
+"SKYPE\coffee" = "http://www.skype-emoticons.com/images/emoticon-0162-coffee.gif"
+"SKYPE\pizza" = "http://www.skype-emoticons.com/images/emoticon-0163-pizza.gif"
+"SKYPE\money" = "http://www.skype-emoticons.com/images/emoticon-0164-cash.gif"
+"SKYPE\muscle" = "http://www.skype-emoticons.com/images/emoticon-0165-muscle.gif"
+"SKYPE\cake" = "http://www.skype-emoticons.com/images/emoticon-0166-cake.gif"
+"SKYPE\beer" = "http://www.skype-emoticons.com/images/emoticon-0167-beer.gif"
+"SKYPE\drink" = "http://www.skype-emoticons.com/images/emoticon-0168-drink.gif"
+"SKYPE\dance" = "http://www.skype-emoticons.com/images/emoticon-0169-dance.gif"
+"SKYPE\ninja" = "http://www.skype-emoticons.com/images/emoticon-0170-ninja.gif"
+"SKYPE\star" = "http://www.skype-emoticons.com/images/emoticon-0171-star.gif"
+"SKYPE\mooning" = "http://www.skype-emoticons.com/images/emoticon-0172-mooning.gif"
+"SKYPE\finger" = "http://www.skype-emoticons.com/images/emoticon-0173-middlefinger.gif"
+"SKYPE\bandit" = "http://www.skype-emoticons.com/images/emoticon-0174-bandit.gif"
+"SKYPE\drunk" = "http://www.skype-emoticons.com/images/emoticon-0175-drunk.gif"
+"SKYPE\cigarette" = "http://www.skype-emoticons.com/images/emoticon-0176-smoke.gif"
+"SKYPE\toivo" = "http://www.skype-emoticons.com/images/emoticon-0177-toivo.gif"
+"SKYPE\rock" = "http://www.skype-emoticons.com/images/emoticon-0178-rock.gif"
+"SKYPE\headbang" = "http://www.skype-emoticons.com/images/emoticon-0179-headbang.gif"
+"SKYPE\bug" = "http://www.skype-emoticons.com/images/emoticon-0180-bug.gif"
+"SKYPE\fubar" = "http://www.skype-emoticons.com/images/emoticon-0181-fubar.gif"
+"SKYPE\poolparty" = "http://www.skype-emoticons.com/images/emoticon-0182-poolparty.gif"
+"SKYPE\swearing" = "http://www.skype-emoticons.com/images/emoticon-0183-swear.gif"
+"SKYPE\tmi" = "http://www.skype-emoticons.com/images/emoticon-0184-tmi.gif"
+"SKYPE\heidy" = "http://www.skype-emoticons.com/images/emoticon-0185-heidy.gif"
+"SKYPE\flag_AF" = "http://www.skype-emoticons.com/images/af.png"
+"SKYPE\flag_AL" = "http://www.skype-emoticons.com/images/al.png"
+"SKYPE\flag_DZ" = "http://www.skype-emoticons.com/images/dz.png"
+"SKYPE\flag_AS" = "http://www.skype-emoticons.com/images/as.png"
+"SKYPE\flag_AD" = "http://www.skype-emoticons.com/images/ad.png"
+"SKYPE\flag_AO" = "http://www.skype-emoticons.com/images/ao.png"
+"SKYPE\flag_AI" = "http://www.skype-emoticons.com/images/ai.png"
+"SKYPE\flag_AQ" = "http://www.skype-emoticons.com/images/aq.png"
+"SKYPE\flag_AG" = "http://www.skype-emoticons.com/images/ag.png"
+"SKYPE\flag_AR" = "http://www.skype-emoticons.com/images/ar.png"
+"SKYPE\flag_AM" = "http://www.skype-emoticons.com/images/am.png"
+"SKYPE\flag_AW" = "http://www.skype-emoticons.com/images/aw.png"
+"SKYPE\flag_AU" = "http://www.skype-emoticons.com/images/au.png"
+"SKYPE\flag_AT" = "http://www.skype-emoticons.com/images/at.png"
+"SKYPE\flag_AZ" = "http://www.skype-emoticons.com/images/az.png"
+"SKYPE\flag_BS" = "http://www.skype-emoticons.com/images/bs.png"
+"SKYPE\flag_BH" = "http://www.skype-emoticons.com/images/bh.png"
+"SKYPE\flag_BD" = "http://www.skype-emoticons.com/images/bd.png"
+"SKYPE\flag_BB" = "http://www.skype-emoticons.com/images/bb.png"
+"SKYPE\flag_BY" = "http://www.skype-emoticons.com/images/by.png"
+"SKYPE\flag_BE" = "http://www.skype-emoticons.com/images/be.png"
+"SKYPE\flag_BZ" = "http://www.skype-emoticons.com/images/bz.png"
+"SKYPE\flag_BJ" = "http://www.skype-emoticons.com/images/bj.png"
+"SKYPE\flag_BM" = "http://www.skype-emoticons.com/images/bm.png"
+"SKYPE\flag_BT" = "http://www.skype-emoticons.com/images/bt.png"
+"SKYPE\flag_BO" = "http://www.skype-emoticons.com/images/bo.png"
+"SKYPE\flag_BA" = "http://www.skype-emoticons.com/images/ba.png"
+"SKYPE\flag_BW" = "http://www.skype-emoticons.com/images/bw.png"
+"SKYPE\flag_BR" = "http://www.skype-emoticons.com/images/br.png"
+"SKYPE\flag_IO" = "http://www.skype-emoticons.com/images/io.png"
+"SKYPE\flag_VG" = "http://www.skype-emoticons.com/images/vg.png"
+"SKYPE\flag_BN" = "http://www.skype-emoticons.com/images/bn.png"
+"SKYPE\flag_BG" = "http://www.skype-emoticons.com/images/bg.png"
+"SKYPE\flag_BF" = "http://www.skype-emoticons.com/images/bf.png"
+"SKYPE\flag_BI" = "http://www.skype-emoticons.com/images/bi.png"
+"SKYPE\flag_KH" = "http://www.skype-emoticons.com/images/kh.png"
+"SKYPE\flag_CM" = "http://www.skype-emoticons.com/images/cm.png"
+"SKYPE\flag_CA" = "http://www.skype-emoticons.com/images/ca.png"
+"SKYPE\flag_CV" = "http://www.skype-emoticons.com/images/cv.png"
+"SKYPE\flag_KY" = "http://www.skype-emoticons.com/images/ky.png"
+"SKYPE\flag_CF" = "http://www.skype-emoticons.com/images/cf.png"
+"SKYPE\flag_TD" = "http://www.skype-emoticons.com/images/td.png"
+"SKYPE\flag_CL" = "http://www.skype-emoticons.com/images/cl.png"
+"SKYPE\flag_CN" = "http://www.skype-emoticons.com/images/cn.png"
+"SKYPE\flag_CX" = "http://www.skype-emoticons.com/images/cx.png"
+"SKYPE\flag_CC" = "http://www.skype-emoticons.com/images/cc.png"
+"SKYPE\flag_CO" = "http://www.skype-emoticons.com/images/co.png"
+"SKYPE\flag_KM" = "http://www.skype-emoticons.com/images/km.png"
+"SKYPE\flag_CD" = "http://www.skype-emoticons.com/images/cd.png"
+"SKYPE\flag_CG" = "http://www.skype-emoticons.com/images/cg.png"
+"SKYPE\flag_CK" = "http://www.skype-emoticons.com/images/ck.png"
+"SKYPE\flag_CR" = "http://www.skype-emoticons.com/images/cr.png"
+"SKYPE\flag_CI" = "http://www.skype-emoticons.com/images/ci.png"
+"SKYPE\flag_CU" = "http://www.skype-emoticons.com/images/cu.png"
+"SKYPE\flag_CY" = "http://www.skype-emoticons.com/images/cy.png"
+"SKYPE\flag_CZ" = "http://www.skype-emoticons.com/images/cz.png"
+"SKYPE\flag_DK" = "http://www.skype-emoticons.com/images/dk.png"
+"SKYPE\flag_DJ" = "http://www.skype-emoticons.com/images/dj.png"
+"SKYPE\flag_DM" = "http://www.skype-emoticons.com/images/dm.png"
+"SKYPE\flag_DO" = "http://www.skype-emoticons.com/images/do.png"
+"SKYPE\flag_EC" = "http://www.skype-emoticons.com/images/ec.png"
+"SKYPE\flag_EG" = "http://www.skype-emoticons.com/images/eg.png"
+"SKYPE\flag_EU" = "http://www.skype-emoticons.com/images/eu.png"
+"SKYPE\flag_SV" = "http://www.skype-emoticons.com/images/sv.png"
+"SKYPE\flag_GQ" = "http://www.skype-emoticons.com/images/gq.png"
+"SKYPE\flag_ER" = "http://www.skype-emoticons.com/images/er.png"
+"SKYPE\flag_EE" = "http://www.skype-emoticons.com/images/ee.png"
+"SKYPE\flag_ET" = "http://www.skype-emoticons.com/images/et.png"
+"SKYPE\flag_FO" = "http://www.skype-emoticons.com/images/fo.png"
+"SKYPE\flag_FK" = "http://www.skype-emoticons.com/images/fk.png"
+"SKYPE\flag_FJ" = "http://www.skype-emoticons.com/images/fj.png"
+"SKYPE\flag_FI" = "http://www.skype-emoticons.com/images/fi.png"
+"SKYPE\flag_FR" = "http://www.skype-emoticons.com/images/fr.png"
+"SKYPE\flag_GF" = "http://www.skype-emoticons.com/images/gf.png"
+"SKYPE\flag_PF" = "http://www.skype-emoticons.com/images/pf.png"
+"SKYPE\flag_TF" = "http://www.skype-emoticons.com/images/tf.png"
+"SKYPE\flag_GA" = "http://www.skype-emoticons.com/images/ga.png"
+"SKYPE\flag_GM" = "http://www.skype-emoticons.com/images/gm.png"
+"SKYPE\flag_GE" = "http://www.skype-emoticons.com/images/ge.png"
+"SKYPE\flag_DE" = "http://www.skype-emoticons.com/images/de.png"
+"SKYPE\flag_GH" = "http://www.skype-emoticons.com/images/gh.png"
+"SKYPE\flag_GI" = "http://www.skype-emoticons.com/images/gi.png"
+"SKYPE\flag_GR" = "http://www.skype-emoticons.com/images/gr.png"
+"SKYPE\flag_GL" = "http://www.skype-emoticons.com/images/gl.png"
+"SKYPE\flag_GD" = "http://www.skype-emoticons.com/images/gd.png"
+"SKYPE\flag_GP" = "http://www.skype-emoticons.com/images/gp.png"
+"SKYPE\flag_GU" = "http://www.skype-emoticons.com/images/gu.png"
+"SKYPE\flag_GT" = "http://www.skype-emoticons.com/images/gt.png"
+"SKYPE\flag_GN" = "http://www.skype-emoticons.com/images/gn.png"
+"SKYPE\flag_GW" = "http://www.skype-emoticons.com/images/gw.png"
+"SKYPE\flag_GY" = "http://www.skype-emoticons.com/images/gy.png"
+"SKYPE\flag_HT" = "http://www.skype-emoticons.com/images/ht.png"
+"SKYPE\flag_HM" = "http://www.skype-emoticons.com/images/hm.png"
+"SKYPE\flag_VA" = "http://www.skype-emoticons.com/images/va.png"
+"SKYPE\flag_HN" = "http://www.skype-emoticons.com/images/hn.png"
+"SKYPE\flag_HK" = "http://www.skype-emoticons.com/images/hk.png"
+"SKYPE\flag_HR" = "http://www.skype-emoticons.com/images/hr.png"
+"SKYPE\flag_HU" = "http://www.skype-emoticons.com/images/hu.png"
+"SKYPE\flag_IS" = "http://www.skype-emoticons.com/images/is.png"
+"SKYPE\flag_IN" = "http://www.skype-emoticons.com/images/in.png"
+"SKYPE\flag_ID" = "http://www.skype-emoticons.com/images/id.png"
+"SKYPE\flag_IR" = "http://www.skype-emoticons.com/images/ir.png"
+"SKYPE\flag_IQ" = "http://www.skype-emoticons.com/images/iq.png"
+"SKYPE\flag_IE" = "http://www.skype-emoticons.com/images/ie.png"
+"SKYPE\flag_IL" = "http://www.skype-emoticons.com/images/il.png"
+"SKYPE\flag_IT" = "http://www.skype-emoticons.com/images/it.png"
+"SKYPE\flag_JM" = "http://www.skype-emoticons.com/images/jm.png"
+"SKYPE\flag_JP" = "http://www.skype-emoticons.com/images/jp.png"
+"SKYPE\flag_JO" = "http://www.skype-emoticons.com/images/jo.png"
+"SKYPE\flag_KZ" = "http://www.skype-emoticons.com/images/kz.png"
+"SKYPE\flag_KE" = "http://www.skype-emoticons.com/images/ke.png"
+"SKYPE\flag_KI" = "http://www.skype-emoticons.com/images/ki.png"
+"SKYPE\flag_KP" = "http://www.skype-emoticons.com/images/kp.png"
+"SKYPE\flag_KR" = "http://www.skype-emoticons.com/images/kr.png"
+"SKYPE\flag_KW" = "http://www.skype-emoticons.com/images/kw.png"
+"SKYPE\flag_KG" = "http://www.skype-emoticons.com/images/kg.png"
+"SKYPE\flag_LA" = "http://www.skype-emoticons.com/images/la.png"
+"SKYPE\flag_LV" = "http://www.skype-emoticons.com/images/lv.png"
+"SKYPE\flag_LB" = "http://www.skype-emoticons.com/images/lb.png"
+"SKYPE\flag_LS" = "http://www.skype-emoticons.com/images/ls.png"
+"SKYPE\flag_LR" = "http://www.skype-emoticons.com/images/lr.png"
+"SKYPE\flag_LY" = "http://www.skype-emoticons.com/images/ly.png"
+"SKYPE\flag_LI" = "http://www.skype-emoticons.com/images/li.png"
+"SKYPE\flag_LT" = "http://www.skype-emoticons.com/images/lt.png"
+"SKYPE\flag_LU" = "http://www.skype-emoticons.com/images/lu.png"
+"SKYPE\flag_MO" = "http://www.skype-emoticons.com/images/mo.png"
+"SKYPE\flag_ME" = "http://www.skype-emoticons.com/images/me.png"
+"SKYPE\flag_MK" = "http://www.skype-emoticons.com/images/mk.png"
+"SKYPE\flag_MG" = "http://www.skype-emoticons.com/images/mg.png"
+"SKYPE\flag_MW" = "http://www.skype-emoticons.com/images/mw.png"
+"SKYPE\flag_MY" = "http://www.skype-emoticons.com/images/my.png"
+"SKYPE\flag_MV" = "http://www.skype-emoticons.com/images/mv.png"
+"SKYPE\flag_ML" = "http://www.skype-emoticons.com/images/ml.png"
+"SKYPE\flag_MT" = "http://www.skype-emoticons.com/images/mt.png"
+"SKYPE\flag_MH" = "http://www.skype-emoticons.com/images/mh.png"
+"SKYPE\flag_MQ" = "http://www.skype-emoticons.com/images/mq.png"
+"SKYPE\flag_MR" = "http://www.skype-emoticons.com/images/mr.png"
+"SKYPE\flag_MU" = "http://www.skype-emoticons.com/images/mu.png"
+"SKYPE\flag_YT" = "http://www.skype-emoticons.com/images/yt.png"
+"SKYPE\flag_MX" = "http://www.skype-emoticons.com/images/mx.png"
+"SKYPE\flag_FM" = "http://www.skype-emoticons.com/images/fm.png"
+"SKYPE\flag_MD" = "http://www.skype-emoticons.com/images/md.png"
+"SKYPE\flag_MC" = "http://www.skype-emoticons.com/images/mc.png"
+"SKYPE\flag_MN" = "http://www.skype-emoticons.com/images/mn.png"
+"SKYPE\flag_MS" = "http://www.skype-emoticons.com/images/ms.png"
+"SKYPE\flag_MA" = "http://www.skype-emoticons.com/images/ma.png"
+"SKYPE\flag_MZ" = "http://www.skype-emoticons.com/images/mz.png"
+"SKYPE\flag_MM" = "http://www.skype-emoticons.com/images/mm.png"
+"SKYPE\flag_NA" = "http://www.skype-emoticons.com/images/na.png"
+"SKYPE\flag_NR" = "http://www.skype-emoticons.com/images/nr.png"
+"SKYPE\flag_NP" = "http://www.skype-emoticons.com/images/np.png"
+"SKYPE\flag_AN" = "http://www.skype-emoticons.com/images/an.png"
+"SKYPE\flag_NL" = "http://www.skype-emoticons.com/images/nl.png"
+"SKYPE\flag_NC" = "http://www.skype-emoticons.com/images/nc.png"
+"SKYPE\flag_NZ" = "http://www.skype-emoticons.com/images/nz.png"
+"SKYPE\flag_NI" = "http://www.skype-emoticons.com/images/ni.png"
+"SKYPE\flag_NE" = "http://www.skype-emoticons.com/images/ne.png"
+"SKYPE\flag_NG" = "http://www.skype-emoticons.com/images/ng.png"
+"SKYPE\flag_NU" = "http://www.skype-emoticons.com/images/nu.png"
+"SKYPE\flag_NF" = "http://www.skype-emoticons.com/images/nf.png"
+"SKYPE\flag_MP" = "http://www.skype-emoticons.com/images/mp.png"
+"SKYPE\flag_NO" = "http://www.skype-emoticons.com/images/no.png"
+"SKYPE\flag_OM" = "http://www.skype-emoticons.com/images/om.png"
+"SKYPE\flag_PK" = "http://www.skype-emoticons.com/images/pk.png"
+"SKYPE\flag_PW" = "http://www.skype-emoticons.com/images/pw.png"
+"SKYPE\flag_PS" = "http://www.skype-emoticons.com/images/ps.png"
+"SKYPE\flag_PA" = "http://www.skype-emoticons.com/images/pa.png"
+"SKYPE\flag_PG" = "http://www.skype-emoticons.com/images/pg.png"
+"SKYPE\flag_PY" = "http://www.skype-emoticons.com/images/py.png"
+"SKYPE\flag_PE" = "http://www.skype-emoticons.com/images/pe.png"
+"SKYPE\flag_PH" = "http://www.skype-emoticons.com/images/ph.png"
+"SKYPE\flag_PN" = "http://www.skype-emoticons.com/images/pn.png"
+"SKYPE\flag_PL" = "http://www.skype-emoticons.com/images/pl.png"
+"SKYPE\flag_PT" = "http://www.skype-emoticons.com/images/pt.png"
+"SKYPE\flag_PR" = "http://www.skype-emoticons.com/images/pr.png"
+"SKYPE\flag_QA" = "http://www.skype-emoticons.com/images/qa.png"
+"SKYPE\flag_RE" = "http://www.skype-emoticons.com/images/re.png"
+"SKYPE\flag_RO" = "http://www.skype-emoticons.com/images/ro.png"
+"SKYPE\flag_RS" = "http://www.skype-emoticons.com/images/rs.png"
+"SKYPE\flag_RU" = "http://www.skype-emoticons.com/images/ru.png"
+"SKYPE\flag_RW" = "http://www.skype-emoticons.com/images/rw.png"
+"SKYPE\flag_SH" = "http://www.skype-emoticons.com/images/sh.png"
+"SKYPE\flag_KN" = "http://www.skype-emoticons.com/images/kn.png"
+"SKYPE\flag_LC" = "http://www.skype-emoticons.com/images/lc.png"
+"SKYPE\flag_PM" = "http://www.skype-emoticons.com/images/pm.png"
+"SKYPE\flag_VC" = "http://www.skype-emoticons.com/images/vc.png"
+"SKYPE\flag_WS" = "http://www.skype-emoticons.com/images/ws.png"
+"SKYPE\flag_SM" = "http://www.skype-emoticons.com/images/sm.png"
+"SKYPE\flag_ST" = "http://www.skype-emoticons.com/images/st.png"
+"SKYPE\flag_SA" = "http://www.skype-emoticons.com/images/sa.png"
+"SKYPE\flag_SN" = "http://www.skype-emoticons.com/images/sn.png"
+"SKYPE\flag_CS" = "http://www.skype-emoticons.com/images/cs.png"
+"SKYPE\flag_SC" = "http://www.skype-emoticons.com/images/sc.png"
+"SKYPE\flag_SL" = "http://www.skype-emoticons.com/images/sl.png"
+"SKYPE\flag_SG" = "http://www.skype-emoticons.com/images/sg.png"
+"SKYPE\flag_SK" = "http://www.skype-emoticons.com/images/sk.png"
+"SKYPE\flag_SI" = "http://www.skype-emoticons.com/images/si.png"
+"SKYPE\flag_SB" = "http://www.skype-emoticons.com/images/sb.png"
+"SKYPE\flag_SO" = "http://www.skype-emoticons.com/images/so.png"
+"SKYPE\flag_ZA" = "http://www.skype-emoticons.com/images/za.png"
+"SKYPE\flag_ES" = "http://www.skype-emoticons.com/images/es.png"
+"SKYPE\flag_LK" = "http://www.skype-emoticons.com/images/lk.png"
+"SKYPE\flag_SD" = "http://www.skype-emoticons.com/images/sd.png"
+"SKYPE\flag_SR" = "http://www.skype-emoticons.com/images/sr.png"
+"SKYPE\flag_SZ" = "http://www.skype-emoticons.com/images/sz.png"
+"SKYPE\flag_SE" = "http://www.skype-emoticons.com/images/se.png"
+"SKYPE\flag_CH" = "http://www.skype-emoticons.com/images/ch.png"
+"SKYPE\flag_SY" = "http://www.skype-emoticons.com/images/sy.png"
+"SKYPE\flag_TW" = "http://www.skype-emoticons.com/images/tw.png"
+"SKYPE\flag_TJ" = "http://www.skype-emoticons.com/images/tj.png"
+"SKYPE\flag_TZ" = "http://www.skype-emoticons.com/images/tz.png"
+"SKYPE\flag_TH" = "http://www.skype-emoticons.com/images/th.png"
+"SKYPE\flag_TL" = "http://www.skype-emoticons.com/images/tl.png"
+"SKYPE\flag_TG" = "http://www.skype-emoticons.com/images/tg.png"
+"SKYPE\flag_TK" = "http://www.skype-emoticons.com/images/tk.png"
+"SKYPE\flag_TO" = "http://www.skype-emoticons.com/images/to.png"
+"SKYPE\flag_TT" = "http://www.skype-emoticons.com/images/tt.png"
+"SKYPE\flag_TN" = "http://www.skype-emoticons.com/images/tn.png"
+"SKYPE\flag_TR" = "http://www.skype-emoticons.com/images/tr.png"
+"SKYPE\flag_TM" = "http://www.skype-emoticons.com/images/tm.png"
+"SKYPE\flag_TC" = "http://www.skype-emoticons.com/images/tc.png"
+"SKYPE\flag_TV" = "http://www.skype-emoticons.com/images/tv.png"
+"SKYPE\flag_VI" = "http://www.skype-emoticons.com/images/vi.png"
+"SKYPE\flag_UG" = "http://www.skype-emoticons.com/images/ug.png"
+"SKYPE\flag_UA" = "http://www.skype-emoticons.com/images/ua.png"
+"SKYPE\flag_AE" = "http://www.skype-emoticons.com/images/ae.png"
+"SKYPE\flag_GB" = "http://www.skype-emoticons.com/images/gb.png"
+"SKYPE\flag_US" = "http://www.skype-emoticons.com/images/us.png"
+"SKYPE\flag_UY" = "http://www.skype-emoticons.com/images/uy.png"
+"SKYPE\flag_UZ" = "http://www.skype-emoticons.com/images/uz.png"
+"SKYPE\flag_VU" = "http://www.skype-emoticons.com/images/vu.png"
+"SKYPE\flag_VE" = "http://www.skype-emoticons.com/images/ve.png"
+"SKYPE\flag_VN" = "http://www.skype-emoticons.com/images/vn.png"
+"SKYPE\flag_WF" = "http://www.skype-emoticons.com/images/wf.png"
+"SKYPE\flag_EH" = "http://www.skype-emoticons.com/images/eh.png"
+"SKYPE\flag_YE" = "http://www.skype-emoticons.com/images/ye.png"
+"SKYPE\flag_ZM" = "http://www.skype-emoticons.com/images/zm.png"
+"SKYPE\flag_ZW" = "http://www.skype-emoticons.com/images/zw.png"
+
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/Tango.mep b/Plugins/emoticons/data/Customize/Emoticons/Tango/Tango.mep
index 213905d..09d1bfe 100644
--- a/Plugins/emoticons/data/Customize/Emoticons/Tango/Tango.mep
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/Tango.mep
@@ -1,2 +1,2 @@
Name: Tango emoticons
-Creator: Hylke \ No newline at end of file
+Creator: Hylke (emoticons) and famfamfam.com (flags) \ No newline at end of file
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AD.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AD.png
new file mode 100644
index 0000000..625ca84
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AD.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AE.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AE.png
new file mode 100644
index 0000000..ef3a1ec
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AE.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AF.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AF.png
new file mode 100644
index 0000000..a4742e2
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AF.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AG.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AG.png
new file mode 100644
index 0000000..556d550
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AG.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AI.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AI.png
new file mode 100644
index 0000000..74ed29d
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AI.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AL.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AL.png
new file mode 100644
index 0000000..92354cb
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AL.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AM.png
new file mode 100644
index 0000000..344a2a8
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AN.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AN.png
new file mode 100644
index 0000000..633e4b8
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AN.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AO.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AO.png
new file mode 100644
index 0000000..bcbd1d6
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AO.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AQ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AQ.png
new file mode 100644
index 0000000..9c6602f
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AQ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AR.png
new file mode 100644
index 0000000..e5ef8f1
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AS.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AS.png
new file mode 100644
index 0000000..32f30e4
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AS.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AT.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AT.png
new file mode 100644
index 0000000..0f15f34
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AT.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AU.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AU.png
new file mode 100644
index 0000000..a01389a
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AU.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AW.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AW.png
new file mode 100644
index 0000000..a3579c2
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AW.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AZ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AZ.png
new file mode 100644
index 0000000..4ee9fe5
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AZ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BA.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BA.png
new file mode 100644
index 0000000..c774992
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BA.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BB.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BB.png
new file mode 100644
index 0000000..0df19c7
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BB.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BD.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BD.png
new file mode 100644
index 0000000..076a8bf
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BD.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BE.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BE.png
new file mode 100644
index 0000000..d86ebc8
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BE.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BF.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BF.png
new file mode 100644
index 0000000..ab5ce8f
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BF.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BG.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BG.png
new file mode 100644
index 0000000..0469f06
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BG.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BH.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BH.png
new file mode 100644
index 0000000..ea8ce68
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BH.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BI.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BI.png
new file mode 100644
index 0000000..5cc2e30
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BI.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BJ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BJ.png
new file mode 100644
index 0000000..1cc8b45
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BJ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BM.png
new file mode 100644
index 0000000..c0c7aea
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BN.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BN.png
new file mode 100644
index 0000000..8fb0984
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BN.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BO.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BO.png
new file mode 100644
index 0000000..ce7ba52
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BO.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BR.png
new file mode 100644
index 0000000..9b1a553
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BS.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BS.png
new file mode 100644
index 0000000..639fa6c
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BS.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BT.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BT.png
new file mode 100644
index 0000000..1d512df
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BT.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BW.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BW.png
new file mode 100644
index 0000000..fcb1039
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BW.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BY.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BY.png
new file mode 100644
index 0000000..504774e
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BY.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BZ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BZ.png
new file mode 100644
index 0000000..be63ee1
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BZ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CA.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CA.png
new file mode 100644
index 0000000..1f20419
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CA.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CC.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CC.png
new file mode 100644
index 0000000..aed3d3b
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CC.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CD.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CD.png
new file mode 100644
index 0000000..5e48942
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CD.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CF.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CF.png
new file mode 100644
index 0000000..da687bd
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CF.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CG.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CG.png
new file mode 100644
index 0000000..a859792
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CG.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CH.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CH.png
new file mode 100644
index 0000000..242ec01
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CH.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CI.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CI.png
new file mode 100644
index 0000000..3f2c62e
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CI.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CK.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CK.png
new file mode 100644
index 0000000..746d3d6
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CK.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CL.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CL.png
new file mode 100644
index 0000000..29c6d61
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CL.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CM.png
new file mode 100644
index 0000000..f65c5bd
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CN.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CN.png
new file mode 100644
index 0000000..8914414
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CN.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CO.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CO.png
new file mode 100644
index 0000000..a118ff4
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CO.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CR.png
new file mode 100644
index 0000000..c7a3731
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CS.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CS.png
new file mode 100644
index 0000000..8254790
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CS.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CU.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CU.png
new file mode 100644
index 0000000..083f1d6
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CU.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CV.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CV.png
new file mode 100644
index 0000000..a63f7ea
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CV.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CX.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CX.png
new file mode 100644
index 0000000..48e31ad
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CX.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CY.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CY.png
new file mode 100644
index 0000000..5b1ad6c
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CY.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CZ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CZ.png
new file mode 100644
index 0000000..c8403dd
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CZ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DE.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DE.png
new file mode 100644
index 0000000..ac4a977
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DE.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DJ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DJ.png
new file mode 100644
index 0000000..582af36
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DJ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DK.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DK.png
new file mode 100644
index 0000000..e2993d3
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DK.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DM.png
new file mode 100644
index 0000000..5fbffcb
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DO.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DO.png
new file mode 100644
index 0000000..5a04932
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DO.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DZ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DZ.png
new file mode 100644
index 0000000..335c239
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DZ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EC.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EC.png
new file mode 100644
index 0000000..0caa0b1
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EC.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EE.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EE.png
new file mode 100644
index 0000000..0c82efb
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EE.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EG.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EG.png
new file mode 100644
index 0000000..8a3f7a1
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EG.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EH.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EH.png
new file mode 100644
index 0000000..90a1195
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EH.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ER.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ER.png
new file mode 100644
index 0000000..13065ae
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ER.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ES.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ES.png
new file mode 100644
index 0000000..c2de2d7
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ES.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ET.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ET.png
new file mode 100644
index 0000000..2e893fa
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ET.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EU.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EU.png
new file mode 100644
index 0000000..d6d8711
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EU.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FI.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FI.png
new file mode 100644
index 0000000..14ec091
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FI.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FJ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FJ.png
new file mode 100644
index 0000000..cee9988
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FJ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FK.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FK.png
new file mode 100644
index 0000000..ceaeb27
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FK.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FM.png
new file mode 100644
index 0000000..066bb24
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FO.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FO.png
new file mode 100644
index 0000000..cbceb80
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FO.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FR.png
new file mode 100644
index 0000000..8332c4e
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GA.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GA.png
new file mode 100644
index 0000000..0e0d434
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GA.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GB.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GB.png
new file mode 100644
index 0000000..ff701e1
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GB.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GD.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GD.png
new file mode 100644
index 0000000..9ab57f5
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GD.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GE.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GE.png
new file mode 100644
index 0000000..728d970
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GE.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GF.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GF.png
new file mode 100644
index 0000000..8332c4e
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GF.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GH.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GH.png
new file mode 100644
index 0000000..4e2f896
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GH.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GI.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GI.png
new file mode 100644
index 0000000..e76797f
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GI.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GL.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GL.png
new file mode 100644
index 0000000..ef12a73
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GL.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GM.png
new file mode 100644
index 0000000..0720b66
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GN.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GN.png
new file mode 100644
index 0000000..ea660b0
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GN.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GP.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GP.png
new file mode 100644
index 0000000..dbb086d
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GP.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GQ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GQ.png
new file mode 100644
index 0000000..ebe20a2
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GQ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GR.png
new file mode 100644
index 0000000..8651ade
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GT.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GT.png
new file mode 100644
index 0000000..c43a70d
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GT.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GU.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GU.png
new file mode 100644
index 0000000..92f37c0
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GU.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GW.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GW.png
new file mode 100644
index 0000000..b37bcf0
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GW.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GY.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GY.png
new file mode 100644
index 0000000..22cbe2f
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GY.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HK.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HK.png
new file mode 100644
index 0000000..d5c380c
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HK.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HM.png
new file mode 100644
index 0000000..a01389a
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HN.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HN.png
new file mode 100644
index 0000000..96f8388
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HN.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HR.png
new file mode 100644
index 0000000..696b515
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HT.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HT.png
new file mode 100644
index 0000000..416052a
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HT.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HU.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HU.png
new file mode 100644
index 0000000..7baafe4
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HU.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ID.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ID.png
new file mode 100644
index 0000000..c6bc0fa
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ID.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IE.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IE.png
new file mode 100644
index 0000000..26baa31
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IE.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IL.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IL.png
new file mode 100644
index 0000000..2ca772d
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IL.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IN.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IN.png
new file mode 100644
index 0000000..e4d7e81
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IN.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IO.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IO.png
new file mode 100644
index 0000000..3e74b6a
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IO.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IQ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IQ.png
new file mode 100644
index 0000000..878a351
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IQ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IR.png
new file mode 100644
index 0000000..c5fd136
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IS.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IS.png
new file mode 100644
index 0000000..b8f6d0f
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IS.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IT.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IT.png
new file mode 100644
index 0000000..89692f7
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IT.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_JM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_JM.png
new file mode 100644
index 0000000..7be119e
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_JM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_JO.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_JO.png
new file mode 100644
index 0000000..11bd497
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_JO.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_JP.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_JP.png
new file mode 100644
index 0000000..325fbad
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_JP.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KE.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KE.png
new file mode 100644
index 0000000..51879ad
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KE.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KG.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KG.png
new file mode 100644
index 0000000..0a818f6
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KG.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KH.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KH.png
new file mode 100644
index 0000000..30f6bb1
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KH.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KI.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KI.png
new file mode 100644
index 0000000..2dcce4b
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KI.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KM.png
new file mode 100644
index 0000000..812b2f5
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KN.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KN.png
new file mode 100644
index 0000000..febd5b4
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KN.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KP.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KP.png
new file mode 100644
index 0000000..d3d509a
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KP.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KR.png
new file mode 100644
index 0000000..9c0a78e
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KW.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KW.png
new file mode 100644
index 0000000..96546da
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KW.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KY.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KY.png
new file mode 100644
index 0000000..15c5f8e
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KY.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KZ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KZ.png
new file mode 100644
index 0000000..45a8c88
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KZ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LA.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LA.png
new file mode 100644
index 0000000..e28acd0
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LA.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LB.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LB.png
new file mode 100644
index 0000000..d0d452b
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LB.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LC.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LC.png
new file mode 100644
index 0000000..a47d065
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LC.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LI.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LI.png
new file mode 100644
index 0000000..6469909
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LI.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LK.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LK.png
new file mode 100644
index 0000000..088aad6
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LK.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LR.png
new file mode 100644
index 0000000..89a5bc7
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LS.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LS.png
new file mode 100644
index 0000000..33fdef1
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LS.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LT.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LT.png
new file mode 100644
index 0000000..c8ef0da
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LT.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LU.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LU.png
new file mode 100644
index 0000000..4cabba9
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LU.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LV.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LV.png
new file mode 100644
index 0000000..49b6998
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LV.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LY.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LY.png
new file mode 100644
index 0000000..b163a9f
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LY.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MA.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MA.png
new file mode 100644
index 0000000..f386770
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MA.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MC.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MC.png
new file mode 100644
index 0000000..1aa830f
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MC.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MD.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MD.png
new file mode 100644
index 0000000..4e92c18
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MD.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ME.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ME.png
new file mode 100644
index 0000000..ac72535
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ME.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MG.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MG.png
new file mode 100644
index 0000000..d2715b3
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MG.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MH.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MH.png
new file mode 100644
index 0000000..fb523a8
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MH.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MK.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MK.png
new file mode 100644
index 0000000..db173aa
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MK.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ML.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ML.png
new file mode 100644
index 0000000..2cec8ba
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ML.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MM.png
new file mode 100644
index 0000000..f464f67
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MN.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MN.png
new file mode 100644
index 0000000..9396355
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MN.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MO.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MO.png
new file mode 100644
index 0000000..deb801d
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MO.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MP.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MP.png
new file mode 100644
index 0000000..298d588
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MP.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MQ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MQ.png
new file mode 100644
index 0000000..010143b
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MQ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MR.png
new file mode 100644
index 0000000..319546b
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MS.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MS.png
new file mode 100644
index 0000000..d4cbb43
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MS.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MT.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MT.png
new file mode 100644
index 0000000..00af948
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MT.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MU.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MU.png
new file mode 100644
index 0000000..b7fdce1
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MU.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MV.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MV.png
new file mode 100644
index 0000000..5073d9e
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MV.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MW.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MW.png
new file mode 100644
index 0000000..13886e9
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MW.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MX.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MX.png
new file mode 100644
index 0000000..5bc58ab
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MX.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MY.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MY.png
new file mode 100644
index 0000000..9034cba
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MY.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MZ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MZ.png
new file mode 100644
index 0000000..76405e0
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MZ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NA.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NA.png
new file mode 100644
index 0000000..63358c6
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NA.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NC.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NC.png
new file mode 100644
index 0000000..2cad283
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NC.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NE.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NE.png
new file mode 100644
index 0000000..d85f424
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NE.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NF.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NF.png
new file mode 100644
index 0000000..f9bcdda
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NF.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NG.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NG.png
new file mode 100644
index 0000000..3eea2e0
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NG.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NI.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NI.png
new file mode 100644
index 0000000..3969aaa
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NI.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NL.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NL.png
new file mode 100644
index 0000000..fe44791
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NL.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NO.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NO.png
new file mode 100644
index 0000000..160b6b5
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NO.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NP.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NP.png
new file mode 100644
index 0000000..aeb058b
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NP.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NR.png
new file mode 100644
index 0000000..705fc33
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NU.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NU.png
new file mode 100644
index 0000000..c3ce4ae
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NU.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NZ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NZ.png
new file mode 100644
index 0000000..10d6306
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NZ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_OM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_OM.png
new file mode 100644
index 0000000..2ffba7e
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_OM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PA.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PA.png
new file mode 100644
index 0000000..9b2ee9a
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PA.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PE.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PE.png
new file mode 100644
index 0000000..62a0497
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PE.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PF.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PF.png
new file mode 100644
index 0000000..771a0f6
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PF.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PG.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PG.png
new file mode 100644
index 0000000..10d6233
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PG.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PH.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PH.png
new file mode 100644
index 0000000..b89e159
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PH.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PK.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PK.png
new file mode 100644
index 0000000..e9df70c
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PK.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PL.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PL.png
new file mode 100644
index 0000000..d413d01
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PL.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PM.png
new file mode 100644
index 0000000..ba91d2c
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PN.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PN.png
new file mode 100644
index 0000000..aa9344f
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PN.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PR.png
new file mode 100644
index 0000000..82d9130
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PS.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PS.png
new file mode 100644
index 0000000..f5f5477
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PS.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PT.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PT.png
new file mode 100644
index 0000000..ece7980
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PT.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PW.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PW.png
new file mode 100644
index 0000000..6178b25
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PW.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PY.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PY.png
new file mode 100644
index 0000000..cb8723c
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PY.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_QA.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_QA.png
new file mode 100644
index 0000000..ed4c621
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_QA.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RE.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RE.png
new file mode 100644
index 0000000..8332c4e
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RE.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RO.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RO.png
new file mode 100644
index 0000000..57e74a6
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RO.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RS.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RS.png
new file mode 100644
index 0000000..9439a5b
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RS.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RU.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RU.png
new file mode 100644
index 0000000..47da421
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RU.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RW.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RW.png
new file mode 100644
index 0000000..5356491
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RW.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SA.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SA.png
new file mode 100644
index 0000000..b4641c7
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SA.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SB.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SB.png
new file mode 100644
index 0000000..a9937cc
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SB.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SC.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SC.png
new file mode 100644
index 0000000..39ee371
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SC.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SD.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SD.png
new file mode 100644
index 0000000..eaab69e
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SD.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SE.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SE.png
new file mode 100644
index 0000000..1994653
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SE.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SG.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SG.png
new file mode 100644
index 0000000..dd34d61
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SG.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SH.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SH.png
new file mode 100644
index 0000000..4b1d2a2
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SH.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SI.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SI.png
new file mode 100644
index 0000000..bb1476f
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SI.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SK.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SK.png
new file mode 100644
index 0000000..7ccbc82
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SK.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SL.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SL.png
new file mode 100644
index 0000000..12d812d
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SL.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SM.png
new file mode 100644
index 0000000..3df2fdc
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SN.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SN.png
new file mode 100644
index 0000000..eabb71d
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SN.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SO.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SO.png
new file mode 100644
index 0000000..4a1ea4b
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SO.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SR.png
new file mode 100644
index 0000000..5eff927
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ST.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ST.png
new file mode 100644
index 0000000..2978557
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ST.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SV.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SV.png
new file mode 100644
index 0000000..2498799
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SV.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SY.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SY.png
new file mode 100644
index 0000000..f5ce30d
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SY.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SZ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SZ.png
new file mode 100644
index 0000000..914ee86
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SZ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TC.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TC.png
new file mode 100644
index 0000000..8fc1156
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TC.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TD.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TD.png
new file mode 100644
index 0000000..667f21f
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TD.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TF.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TF.png
new file mode 100644
index 0000000..80529a4
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TF.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TG.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TG.png
new file mode 100644
index 0000000..3aa00ad
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TG.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TH.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TH.png
new file mode 100644
index 0000000..dd8ba91
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TH.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TJ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TJ.png
new file mode 100644
index 0000000..617bf64
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TJ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TK.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TK.png
new file mode 100644
index 0000000..67b8c8c
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TK.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TL.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TL.png
new file mode 100644
index 0000000..77da181
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TL.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TM.png
new file mode 100644
index 0000000..828020e
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TN.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TN.png
new file mode 100644
index 0000000..183cdd3
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TN.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TO.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TO.png
new file mode 100644
index 0000000..f89b8ba
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TO.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TR.png
new file mode 100644
index 0000000..be32f77
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TT.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TT.png
new file mode 100644
index 0000000..2a11c1e
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TT.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TV.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TV.png
new file mode 100644
index 0000000..28274c5
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TV.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TW.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TW.png
new file mode 100644
index 0000000..f31c654
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TW.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TZ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TZ.png
new file mode 100644
index 0000000..c00ff79
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TZ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UA.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UA.png
new file mode 100644
index 0000000..09563a2
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UA.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UG.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UG.png
new file mode 100644
index 0000000..33f4aff
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UG.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_US.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_US.png
new file mode 100644
index 0000000..10f451f
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_US.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UY.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UY.png
new file mode 100644
index 0000000..31d948a
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UY.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UZ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UZ.png
new file mode 100644
index 0000000..fef5dc1
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UZ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VA.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VA.png
new file mode 100644
index 0000000..b31eaf2
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VA.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VC.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VC.png
new file mode 100644
index 0000000..8fa17b0
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VC.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VE.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VE.png
new file mode 100644
index 0000000..00c90f9
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VE.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VG.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VG.png
new file mode 100644
index 0000000..4156907
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VG.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VI.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VI.png
new file mode 100644
index 0000000..ed26915
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VI.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VN.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VN.png
new file mode 100644
index 0000000..ec7cd48
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VN.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VU.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VU.png
new file mode 100644
index 0000000..b3397bc
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VU.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_WF.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_WF.png
new file mode 100644
index 0000000..9f95587
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_WF.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_WS.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_WS.png
new file mode 100644
index 0000000..c169508
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_WS.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_YE.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_YE.png
new file mode 100644
index 0000000..468dfad
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_YE.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_YT.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_YT.png
new file mode 100644
index 0000000..c298f37
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_YT.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ZA.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ZA.png
new file mode 100644
index 0000000..57c58e2
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ZA.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ZM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ZM.png
new file mode 100644
index 0000000..c25b07b
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ZM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ZW.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ZW.png
new file mode 100644
index 0000000..53c9725
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ZW.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/coins.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/money.png
index 2c28453..2c28453 100644
--- a/Plugins/emoticons/data/Customize/Emoticons/Tango/coins.png
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/money.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/talking.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/talking.png
new file mode 100644
index 0000000..8d2cc88
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/talking.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/usa.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/usa.png
deleted file mode 100644
index aff8637..0000000
--- a/Plugins/emoticons/data/Customize/Emoticons/Tango/usa.png
+++ /dev/null
Binary files differ
diff --git a/Plugins/emoticons/data/Plugins/Emoticons/MSN.emo b/Plugins/emoticons/data/Plugins/Emoticons/MSN.emo
index c4dd7b6..6773c7e 100644
--- a/Plugins/emoticons/data/Plugins/Emoticons/MSN.emo
+++ b/Plugins/emoticons/data/Plugins/Emoticons/MSN.emo
@@ -72,7 +72,7 @@
"brb" = "Be right back", "(brb)"
"rain" = "Storm cloud", "(st)"
"highfive" = "Hi five!", "(h5)"
-"coins" = "Money", "(mo)"
+"money" = "Money", "(mo)"
"dont-know" = "", ":^)"
"thunder" = "", "(li)"
"console" = "XBox", "(xx)"
diff --git a/Plugins/emoticons/data/Plugins/Emoticons/SAMETIME.emo b/Plugins/emoticons/data/Plugins/Emoticons/SAMETIME.emo
new file mode 100644
index 0000000..b354d20
--- /dev/null
+++ b/Plugins/emoticons/data/Plugins/Emoticons/SAMETIME.emo
@@ -0,0 +1,18 @@
+# Sametime protocol
+
+[Sametime]
+
+"angel" = "angel", "0:-)" "0:)"
+"angry" = "angry", ":-@"
+"sad" = "frown", ":-(" ":("
+"laugh" = "grin", ":-D" ":-d"
+"thinking" = "half", ":-/"
+"shock" = "oops", ":-O" ":-0" ":-o" ":O" ":0" ":o"
+"sarcastic" = "eyebrow", "/:)"
+"smile" = "smile", ":-)" ":)"
+"tongue" = "tongue", ":-P" ":P"
+"wink" = "wink", ";)" ";-)"
+"lamp" = "idea", "(i)" "(I)"
+"crying" = "crying", ":'("
+"confused" = "goofy", ":-S" ":-s"
+"embarrassed" = "shy", ":-$"
diff --git a/Plugins/emoticons/data/Plugins/Emoticons/Skype.emo b/Plugins/emoticons/data/Plugins/Emoticons/Skype.emo
new file mode 100644
index 0000000..562620a
--- /dev/null
+++ b/Plugins/emoticons/data/Plugins/Emoticons/Skype.emo
@@ -0,0 +1,333 @@
+# Skipe protocol
+
+[Skype]
+
+"smile" = "Smile", ":)" ":=)" ":-)"
+"sad" = "Sad Smile", ":(" ":=(" ":-("
+"laugh" = "Big Smile", ":D" ":=D" ":-D" ":d" ":=d" ":-d"
+"glass-cool" = "Cool", "8)" "8=)" "8-)" "B)" "B=)" "B-)" "(cool)"
+"wink" = "Wink", ":o" ":=o" ":-o" ":O" ":=O" ":-O"
+"crying" = "Crying", ";(" ";-(" ";=("
+"sweat" = "Sweating", "(sweat)" "(:|"
+"neutral" = "Speechless", ":|" ":=|" ":-|"
+"kiss" = "Kiss", ":*" ":=*" ":-*"
+"tongue" = "Tongue Out", ":P" ":=P" ":-P" ":p" ":=p" ":-p"
+"embarrassed" = "Blush", "(blush)" ":$" ":-$" ":=$" ":">"
+"sarcastic" = "Wondering", ":^)"
+"sleepy" = "Sleepy", "|-)" "I-)" "I=)" "(snooze)"
+"boring" = "Dull", "|(" "|-(" "|=("
+"in-love" = "In love", "(inlove)"
+"mean" = "Evil grin", "]:)" ">:)" "(grin)"
+"talking" = "Talking", "(talk)"
+"yawn" = "Yawn", "(yawn)" "|-()"
+"sick" = "Puke", "(puke)" ":&amp;" ":-&amp;" ":=&amp;"
+"doh" = "Doh!", "(doh)"
+"angry" = "Angry", ":@" ":-@" ":=@" "x(" "x-(" "x=(" "X(" "X-(" "X=("
+"eyeroll" = "It wasn't me", "(wasntme)"
+"party" = "Party!!!", "(party)"
+"confused" = "Worried", ":S" ":-S" ":=S" ":s" ":-s" ":=s"
+"curl-lip" = "Mmm...", "(mm)"
+"glass-nerdy" = "Nerd", "8-|" "B-|" "8|" "B|" "8=|" "B=|" "(nerd)"
+"shut-mouth" = "Lips Sealed", ":x" ":-x" ":X" ":-X" ":#" ":-#" ":=x" ":=X" ":=#"
+"bye" = "Hi", "(hi)"
+"call-me" = "Call", "(call)"
+"devilish" = "Devil", "(devil)"
+"angel" = "Angel", "(angel)"
+"envy" = "Envy", "(envy)"
+"wait" = "Wait", "(wait)"
+"bear" = "Bear", "(bear)" "(hug)"
+"make-up" = "Make-up", "(makeup)" "(kate)"
+"giggle" = "Covered Laugh", "(giggle)" "(chuckle)"
+"clap" = "Clapping Hands", "(clap)"
+"thinking" = "Thinking", "(think)" ":?" ":-?" ":=?"
+"worship" = "Bow", "(bow)"
+"rotfl" = "Rolling on the floor laughing", "(rofl)"
+"whew" = "Whew", "(whew)"
+"smile-big" = "Happy", "(happy)"
+"smirk" = "Smirking", "(smirk)"
+"nodding" = "Nodding", "(nod)"
+"shaking" = "Shaking", "(shake)"
+"punch" = "Punch", "(punch)"
+"emo" = "Emo", "(emo)"
+"yes" = "Yes", "(y)" "(Y)" "(ok)"
+"no" = "No", "(n)" "(N)"
+"handshake" = "Shaking Hands", "(handshake)"
+"skype" = "Skype", "(skype)" "(ss)"
+"love" = "Heart", "(h)" "(H)" "(l)" "(L)"
+"love-over" = "Broken heart", "(u)" "(U)"
+"mail" = "Mail", "(e)" "(m)"
+"rose" = "Flower", "(f)" "(F)"
+"rain" = "Rain", "(rain)" "(london)" "(st)"
+"sun" = "Sun", "(sun)"
+"clock" = "Time", "(o)" "(O)" "(time)"
+"music" = "Music", "(music)"
+"film" = "Movie", "(~)" "(film)" "(movie)"
+"phone" = "Phone", "(mp)" "(ph)"
+"coffee" = "Coffee", "(coffee)"
+"pizza" = "Pizza", "(pizza)" "(pi)"
+"money" = "Cash", "(cash)" "(mo)" "($)"
+"muscle" = "Muscle", "(muscle)" "(flex)"
+"cake" = "Cake", "(^)" "(cake)"
+"beer" = "Beer", "(beer)"
+"drink" = "Drink", "(d)" "(D)"
+"dance" = "Dance", "(dance)" "\o/" "\:D/" "\:d/"
+"ninja" = "Ninja", "(ninja)"
+"star" = "Star", "(*)"
+
+[Hidden]
+
+"mooning" = "Mooning", "(mooning)"
+"finger" = "Finger", "(finger)"
+"bandit" = "Bandit", "(bandit)"
+"drunk" = "Drunk", "(drunk)"
+"cigarette" = "Smoking", "(smoking)" "(smoke)" "(ci)"
+"toivo" = "Toivo", "(toivo)"
+"rock" = "Rock", "(rock)"
+"headbang" = "Headbang", "(headbang)" "(banghead)"
+"bug" = "Bug", "(bug)"
+"fubar" = "Fubar", "(fubar)"
+"poolparty" = "Poolparty", "(poolparty)"
+"swearing" = "Swearing", "(swear)"
+"tmi" = "TMI", "(tmi)"
+"heidy" = "Heidy", "(heidy)"
+
+[Flags]
+
+"flag_AF" = "Afghanistan", "(flag:AF)"
+"flag_AL" = "Albania", "(flag:AL)"
+"flag_DZ" = "Algeria", "(flag:DZ)"
+"flag_AS" = "American Samoa", "(flag:AS)"
+"flag_AD" = "Andorra", "(flag:AD)"
+"flag_AO" = "Angola", "(flag:AO)"
+"flag_AI" = "Anguilla", "(flag:AI)"
+"flag_AQ" = "Antarctica", "(flag:AQ)"
+"flag_AG" = "Antigua and Barbuda", "(flag:AG)"
+"flag_AR" = "Argentina", "(flag:AR)"
+"flag_AM" = "Armenia", "(flag:AM)"
+"flag_AW" = "Aruba", "(flag:AW)"
+"flag_AU" = "Australia", "(flag:AU)"
+"flag_AT" = "Austria", "(flag:AT)"
+"flag_AZ" = "Azerbaijan", "(flag:AZ)"
+"flag_BS" = "Bahamas", "(flag:BS)"
+"flag_BH" = "Bahrain", "(flag:BH)"
+"flag_BD" = "Bangladesh", "(flag:BD)"
+"flag_BB" = "Barbados", "(flag:BB)"
+"flag_BY" = "Belarus", "(flag:BY)"
+"flag_BE" = "Belgium", "(flag:BE)"
+"flag_BZ" = "Belize", "(flag:BZ)"
+"flag_BJ" = "Benin", "(flag:BJ)"
+"flag_BM" = "Bermuda", "(flag:BM)"
+"flag_BT" = "Bhutan", "(flag:BT)"
+"flag_BO" = "Bolivia", "(flag:BO)"
+"flag_BA" = "Bosnia and Herzegovina", "(flag:BA)"
+"flag_BW" = "Botswana", "(flag:BW)"
+"flag_BR" = "Brazil", "(flag:BR)"
+"flag_IO" = "British Indian Ocean Territory", "(flag:IO)"
+"flag_VG" = "British Virgin Islands", "(flag:VG)"
+"flag_BN" = "Brunei Darussalam", "(flag:BN)"
+"flag_BG" = "Bulgaria", "(flag:BG)"
+"flag_BF" = "Burkina Faso", "(flag:BF)"
+"flag_BI" = "Burundi", "(flag:BI)"
+"flag_KH" = "Cambodia", "(flag:KH)"
+"flag_CM" = "Cameroon", "(flag:CM)"
+"flag_CA" = "Canada", "(flag:CA)"
+"flag_CV" = "Cape Verde", "(flag:CV)"
+"flag_KY" = "Cayman Islands", "(flag:KY)"
+"flag_CF" = "Central African Republic", "(flag:CF)"
+"flag_TD" = "Chad", "(flag:TD)"
+"flag_CL" = "Chile", "(flag:CL)"
+"flag_CN" = "China", "(flag:CN)"
+"flag_CX" = "Christmas Island", "(flag:CX)"
+"flag_CC" = "Cocos Islands", "(flag:CC)"
+"flag_CO" = "Colombia", "(flag:CO)"
+"flag_KM" = "Comoros", "(flag:KM)"
+"flag_CD" = "Congo", "(flag:CD)"
+"flag_CG" = "Congo", "(flag:CG)"
+"flag_CK" = "Cook Islands", "(flag:CK)"
+"flag_CR" = "Costa Rica", "(flag:CR)"
+"flag_CI" = "Cote D’Ivoire", "(flag:CI)"
+"flag_CU" = "Cuba", "(flag:CU)"
+"flag_CY" = "Cyprus", "(flag:CY)"
+"flag_CZ" = "Czech Republic", "(flag:CZ)"
+"flag_DK" = "Denmark", "(flag:DK)"
+"flag_DJ" = "Djibouti", "(flag:DJ)"
+"flag_DM" = "Dominica", "(flag:DM)"
+"flag_DO" = "Dominican Republic", "(flag:DO)"
+"flag_EC" = "Ecuador", "(flag:EC)"
+"flag_EG" = "Egypt", "(flag:EG)"
+"flag_EU" = "European Union", "(flag:EU)"
+"flag_SV" = "El Salvador", "(flag:SV)"
+"flag_GQ" = "Equatorial Guinea", "(flag:GQ)"
+"flag_ER" = "Eritrea", "(flag:ER)"
+"flag_EE" = "Estonia", "(flag:EE)"
+"flag_ET" = "Ethiopia", "(flag:ET)"
+"flag_FO" = "Faeroe Islands", "(flag:FO)"
+"flag_FK" = "Falkland Islands", "(flag:FK)"
+"flag_FJ" = "Fiji", "(flag:FJ)"
+"flag_FI" = "Finland", "(flag:FI)"
+"flag_FR" = "France", "(flag:FR)"
+"flag_GF" = "French Guiana", "(flag:GF)"
+"flag_PF" = "French Polynesia", "(flag:PF)"
+"flag_TF" = "French Southern Territories", "(flag:TF)"
+"flag_GA" = "Gabon", "(flag:GA)"
+"flag_GM" = "Gambia", "(flag:GM)"
+"flag_GE" = "Georgia", "(flag:GE)"
+"flag_DE" = "Germany", "(flag:DE)"
+"flag_GH" = "Ghana", "(flag:GH)"
+"flag_GI" = "Gibraltar", "(flag:GI)"
+"flag_GR" = "Greece", "(flag:GR)"
+"flag_GL" = "Greenland", "(flag:GL)"
+"flag_GD" = "Grenada", "(flag:GD)"
+"flag_GP" = "Guadaloupe", "(flag:GP)"
+"flag_GU" = "Guam", "(flag:GU)"
+"flag_GT" = "Guatemala", "(flag:GT)"
+"flag_GN" = "Guinea", "(flag:GN)"
+"flag_GW" = "Guinea-Bissau", "(flag:GW)"
+"flag_GY" = "Guyana", "(flag:GY)"
+"flag_HT" = "Haiti", "(flag:HT)"
+"flag_HM" = "Heard and McDonald Islands", "(flag:HM)"
+"flag_VA" = "Holy See (Vatican City State)", "(flag:VA)"
+"flag_HN" = "Honduras", "(flag:HN)"
+"flag_HK" = "Hong Kong", "(flag:HK)"
+"flag_HR" = "Hrvatska", "(flag:HR)"
+"flag_HU" = "Hungary", "(flag:HU)"
+"flag_IS" = "Iceland", "(flag:IS)"
+"flag_IN" = "India", "(flag:IN)"
+"flag_ID" = "Indonesia", "(flag:ID)"
+"flag_IR" = "Iran", "(flag:IR)"
+"flag_IQ" = "Iraq", "(flag:IQ)"
+"flag_IE" = "Ireland", "(flag:IE)"
+"flag_IL" = "Israel", "(flag:IL)"
+"flag_IT" = "Italy", "(flag:IT)"
+"flag_JM" = "Jamaica", "(flag:JM)"
+"flag_JP" = "Japan", "(flag:JP)"
+"flag_JO" = "Jordan", "(flag:JO)"
+"flag_KZ" = "Kazakhstan", "(flag:KZ)"
+"flag_KE" = "Kenya", "(flag:KE)"
+"flag_KI" = "Kiribati", "(flag:KI)"
+"flag_KP" = "Korea", "(flag:KP)"
+"flag_KR" = "Korea", "(flag:KR)"
+"flag_KW" = "Kuwait", "(flag:KW)"
+"flag_KG" = "Kyrgyz Republic", "(flag:KG)"
+"flag_LA" = "Lao", "(flag:LA)"
+"flag_LV" = "Latvia", "(flag:LV)"
+"flag_LB" = "Lebanon", "(flag:LB)"
+"flag_LS" = "Lesotho", "(flag:LS)"
+"flag_LR" = "Liberia", "(flag:LR)"
+"flag_LY" = "Libyan Arab Jamahiriya", "(flag:LY)"
+"flag_LI" = "Liechtenstein", "(flag:LI)"
+"flag_LT" = "Lithuania", "(flag:LT)"
+"flag_LU" = "Luxembourg", "(flag:LU)"
+"flag_MO" = "Macao", "(flag:MO)"
+"flag_ME" = "Montenegro", "(flag:ME)"
+"flag_MK" = "Macedonia", "(flag:MK)"
+"flag_MG" = "Madagascar", "(flag:MG)"
+"flag_MW" = "Malawi", "(flag:MW)"
+"flag_MY" = "Malaysia", "(flag:MY)"
+"flag_MV" = "Maldives", "(flag:MV)"
+"flag_ML" = "Mali", "(flag:ML)"
+"flag_MT" = "Malta", "(flag:MT)"
+"flag_MH" = "Marshall Islands", "(flag:MH)"
+"flag_MQ" = "Martinique", "(flag:MQ)"
+"flag_MR" = "Mauritania", "(flag:MR)"
+"flag_MU" = "Mauritius", "(flag:MU)"
+"flag_YT" = "Mayotte", "(flag:YT)"
+"flag_MX" = "Mexico", "(flag:MX)"
+"flag_FM" = "Micronesia", "(flag:FM)"
+"flag_MD" = "Moldova", "(flag:MD)"
+"flag_MC" = "Monaco", "(flag:MC)"
+"flag_MN" = "Mongolia", "(flag:MN)"
+"flag_MS" = "Montserrat", "(flag:MS)"
+"flag_MA" = "Morocco", "(flag:MA)"
+"flag_MZ" = "Mozambique", "(flag:MZ)"
+"flag_MM" = "Myanmar", "(flag:MM)"
+"flag_NA" = "Namibia", "(flag:NA)"
+"flag_NR" = "Nauru", "(flag:NR)"
+"flag_NP" = "Nepal", "(flag:NP)"
+"flag_AN" = "Netherlands Antilles", "(flag:AN)"
+"flag_NL" = "Netherlands", "(flag:NL)"
+"flag_NC" = "New Caledonia", "(flag:NC)"
+"flag_NZ" = "New Zealand", "(flag:NZ)"
+"flag_NI" = "Nicaragua", "(flag:NI)"
+"flag_NE" = "Niger", "(flag:NE)"
+"flag_NG" = "Nigeria", "(flag:NG)"
+"flag_NU" = "Niue", "(flag:NU)"
+"flag_NF" = "Norfolk Island", "(flag:NF)"
+"flag_MP" = "Northern Mariana Islands", "(flag:MP)"
+"flag_NO" = "Norway", "(flag:NO)"
+"flag_OM" = "Oman", "(flag:OM)"
+"flag_PK" = "Pakistan", "(flag:PK)"
+"flag_PW" = "Palau", "(flag:PW)"
+"flag_PS" = "Palestina", "(flag:PS)"
+"flag_PA" = "Panama", "(flag:PA)"
+"flag_PG" = "Papua New Guinea", "(flag:PG)"
+"flag_PY" = "Paraguay", "(flag:PY)"
+"flag_PE" = "Peru", "(flag:PE)"
+"flag_PH" = "Philippines", "(flag:PH)"
+"flag_PN" = "Pitcairn Island", "(flag:PN)"
+"flag_PL" = "Poland", "(flag:PL)"
+"flag_PT" = "Portugal", "(flag:PT)"
+"flag_PR" = "Puerto Rico", "(flag:PR)"
+"flag_QA" = "Qatar", "(flag:QA)"
+"flag_RE" = "Reunion", "(flag:RE)"
+"flag_RO" = "Romania", "(flag:RO)"
+"flag_RS" = "Serbia", "(flag:RS)"
+"flag_RU" = "Russian Federation", "(flag:RU)"
+"flag_RW" = "Rwanda", "(flag:RW)"
+"flag_SH" = "St. Helena", "(flag:SH)"
+"flag_KN" = "St. Kitts and Nevis", "(flag:KN)"
+"flag_LC" = "St. Lucia", "(flag:LC)"
+"flag_PM" = "St. Pierre and Miquelon", "(flag:PM)"
+"flag_VC" = "St. Vincent and the Grenadines", "(flag:VC)"
+"flag_WS" = "Samoa", "(flag:WS)"
+"flag_SM" = "San Marino", "(flag:SM)"
+"flag_ST" = "Sao Tome and Principe", "(flag:ST)"
+"flag_SA" = "Saudi Arabia", "(flag:SA)"
+"flag_SN" = "Senegal", "(flag:SN)"
+"flag_CS" = "Serbia and Montenegro", "(flag:CS)"
+"flag_SC" = "Seychelles", "(flag:SC)"
+"flag_SL" = "Sierra Leone", "(flag:SL)"
+"flag_SG" = "Singapore", "(flag:SG)"
+"flag_SK" = "Slovakia", "(flag:SK)"
+"flag_SI" = "Slovenia", "(flag:SI)"
+"flag_SB" = "Solomon Islands", "(flag:SB)"
+"flag_SO" = "Somalia", "(flag:SO)"
+"flag_ZA" = "South Africa", "(flag:ZA)"
+"flag_ES" = "Spain", "(flag:ES)"
+"flag_LK" = "Sri Lanka", "(flag:LK)"
+"flag_SD" = "Sudan", "(flag:SD)"
+"flag_SR" = "Suriname", "(flag:SR)"
+"flag_SZ" = "Swaziland", "(flag:SZ)"
+"flag_SE" = "Sweden", "(flag:SE)"
+"flag_CH" = "Switzerland", "(flag:CH)"
+"flag_SY" = "Syria", "(flag:SY)"
+"flag_TW" = "Taiwan", "(flag:TW)"
+"flag_TJ" = "Tajikistan", "(flag:TJ)"
+"flag_TZ" = "Tanzania", "(flag:TZ)"
+"flag_TH" = "Thailand", "(flag:TH)"
+"flag_TL" = "Timor-Leste", "(flag:TL)"
+"flag_TG" = "Togo", "(flag:TG)"
+"flag_TK" = "Tokelau", "(flag:TK)"
+"flag_TO" = "Tonga", "(flag:TO)"
+"flag_TT" = "Trinidad and Tobago", "(flag:TT)"
+"flag_TN" = "Tunisia", "(flag:TN)"
+"flag_TR" = "Turkey", "(flag:TR)"
+"flag_TM" = "Turkmenistan", "(flag:TM)"
+"flag_TC" = "Turks and Caicos Islands", "(flag:TC)"
+"flag_TV" = "Tuvalu", "(flag:TV)"
+"flag_VI" = "US Virgin Islands", "(flag:VI)"
+"flag_UG" = "Uganda", "(flag:UG)"
+"flag_UA" = "Ukraine", "(flag:UA)"
+"flag_AE" = "United Arab Emirates", "(flag:AE)"
+"flag_GB" = "United Kingdom", "(flag:GB)"
+"flag_US" = "United States of America", "(flag:US)"
+"flag_UY" = "Uruguay", "(flag:UY)"
+"flag_UZ" = "Uzbekistan", "(flag:UZ)"
+"flag_VU" = "Vanuatu", "(flag:VU)"
+"flag_VE" = "Venezuela", "(flag:VE)"
+"flag_VN" = "Viet Nam", "(flag:VN)"
+"flag_WF" = "Wallis and Futuna Islands", "(flag:WF)"
+"flag_EH" = "Western Sahara", "(flag:EH)"
+"flag_YE" = "Yemen", "(flag:YE)"
+"flag_ZM" = "Zambia", "(flag:ZM)"
+"flag_ZW" = "Zimbabwe", "(flag:ZW)"
diff --git a/Plugins/emoticons/data/Plugins/Emoticons/YAHOO.emo b/Plugins/emoticons/data/Plugins/Emoticons/YAHOO.emo
index bb73674..1a8a041 100644
--- a/Plugins/emoticons/data/Plugins/Emoticons/YAHOO.emo
+++ b/Plugins/emoticons/data/Plugins/Emoticons/YAHOO.emo
@@ -1,5 +1,7 @@
# Yahoo protocol emoticons
+[Yahoo]
+
"smile" = "Happy", ":)" ":-)"
"sad" = "Sad", ":(" ":-("
"wink" = "Winking", ";)" ";-)"
@@ -54,6 +56,9 @@
"weep" = "Sigh", ":-<"
"mad-tongue" = "phbbbbt", ">:P" ">:p"
"cowboy" = "Cowboy", "<):)"
+
+[Hidden]
+
"dog" = "Puppy dog eyes", ":o3" ":O3"
"dont-know" = "I don't know", ":-??"
"not-listening" = "Not listening", "%-("
@@ -63,7 +68,7 @@
"chicken" = "Chicken", "~:>"
"rose" = "Rose", "@};-"
"clover" = "Good luck", "%%-"
-"usa" = "Flag", "**=="
+"flag_US" = "Flag", "**=="
"pumpkin" = "Pumpkin", "(~~)"
"coffee" = "Coffee", "~O)" "~o)"
"lamp" = "Idea", "*-:)"
@@ -72,7 +77,7 @@
"alien" = "Alien", ">-)"
"disapointed" = "Frustrated", ":-L" ":-l"
"pray" = "Praying", "[-O<" "[-o<"
-"coins" = "Money eyes", "$-)"
+"money" = "Money eyes", "$-)"
"music" = "Whistling", ":-\""
"beat-up" = "Feeling beat up", "b-(" "B-("
"peace" = "Peace sign", ":)>-"
diff --git a/Plugins/emoticons/data/Plugins/Emoticons/downloading.gif b/Plugins/emoticons/data/Plugins/Emoticons/downloading.gif
deleted file mode 100644
index a34a48d..0000000
--- a/Plugins/emoticons/data/Plugins/Emoticons/downloading.gif
+++ /dev/null
Binary files differ
diff --git a/Plugins/emoticons/emoticons.cpp b/Plugins/emoticons/emoticons.cpp
index 54f8175..c964fd5 100644
--- a/Plugins/emoticons/emoticons.cpp
+++ b/Plugins/emoticons/emoticons.cpp
@@ -30,7 +30,7 @@ PLUGININFOEX pluginInfo={
#else
"Emoticons",
#endif
- PLUGIN_MAKE_VERSION(0,0,1,5),
+ PLUGIN_MAKE_VERSION(0,0,1,6),
"Emoticons",
"Ricardo Pescuma Domenecci",
"",
@@ -797,7 +797,7 @@ int RestoreInput(RichEditCtrl &rec, int start = 0, int end = -1)
ITooltipData *ttd = NULL;
hr = reObj.poleobj->QueryInterface(__uuidof(ITooltipData), (void**) &ttd);
reObj.poleobj->Release();
- if (SUCCEEDED(hr) && ttd == NULL)
+ if (FAILED(hr) || ttd == NULL)
continue;
BSTR hint = NULL;
@@ -1276,7 +1276,7 @@ void LoadModules()
}
}
-void HandleEmoLine(Module *m, char *tmp)
+void HandleEmoLine(Module *m, char *tmp, char *group)
{
int len = strlen(tmp);
int state = 0;
@@ -1328,6 +1328,7 @@ void HandleEmoLine(Module *m, char *tmp)
case 1:
e = new Emoticon();
e->name = mir_t2a(txt);
+ e->group = group;
MIR_FREE(txt);
break;
case 3:
@@ -1358,6 +1359,7 @@ BOOL LoadModule(Module *m)
char tmp[1024];
char c;
int pos = 0;
+ char *group = NULL;
do
{
c = fgetc(file);
@@ -1365,7 +1367,24 @@ BOOL LoadModule(Module *m)
if (c == '\n' || c == '\r' || c == EOF || pos >= MAX_REGS(tmp) - 1)
{
tmp[pos] = 0;
- HandleEmoLine(m, tmp);
+ strtrim(tmp);
+ size_t len = strlen(tmp);
+
+ if (tmp[0] == '#')
+ {
+ // Do nothing
+ }
+ else if (tmp[0] == '[' && tmp[len-1] == ']')
+ {
+ tmp[len-1] = '\0';
+ strtrim(&tmp[1]);
+ group = mir_strdup(&tmp[1]);
+ }
+ else
+ {
+ HandleEmoLine(m, tmp, group);
+ }
+
pos = 0;
}
else
@@ -1427,7 +1446,7 @@ BOOL isValidExtension(char *name)
&& strcmp(p, ".jpeg") != 0
&& strcmp(p, ".gif") != 0
&& strcmp(p, ".png") != 0
- /*&& strcmp(p, ".swf") != 0*/)
+ && strcmp(p, ".swf") != 0)
return FALSE;
return TRUE;
}
@@ -1443,7 +1462,7 @@ BOOL isValidExtension(WCHAR *name)
&& lstrcmpW(p, L".jpeg") != 0
&& lstrcmpW(p, L".gif") != 0
&& lstrcmpW(p, L".png") != 0
- /*&& lstrcmpW(p, L".swf") != 0*/)
+ && lstrcmpW(p, L".swf") != 0)
return FALSE;
return TRUE;
}
@@ -1456,10 +1475,11 @@ EmoticonImage * HandleMepLine(EmoticonPack *p, char *line)
int state = 0;
int pos;
int module_pos = -1;
+ BOOL noDelimiter;
EmoticonImage *img = NULL;
- for(int i = 0; i < len && state < 4; i++)
+ for(int i = 0; i <= len && state < 6; i++)
{
char c = line[i];
if (c == ' ')
@@ -1467,19 +1487,38 @@ EmoticonImage * HandleMepLine(EmoticonPack *p, char *line)
if ((state % 2) == 0)
{
- if (c != '"')
+ if (c == '"')
+ {
+ state ++;
+ pos = i+1;
+ noDelimiter = FALSE;
+ }
+ else if (c != '=' && c != ',' && c != ' ' && c != '\t' && c != '\r' && c != '\n')
+ {
+ state ++;
+ pos = i;
+ noDelimiter = TRUE;
+ }
+ else
+ {
continue;
-
- state ++;
- pos = i+1;
+ }
}
else
{
if (state == 1 && c == '\\') // Module name
module_pos = i;
- if (c != '"')
- continue;
+ if (noDelimiter)
+ {
+ if (c != ' ' && c != ',' && c != '=' && c != '\0')
+ continue;
+ }
+ else
+ {
+ if (c != '"')
+ continue;
+ }
line[i] = 0;
@@ -1503,12 +1542,15 @@ EmoticonImage * HandleMepLine(EmoticonPack *p, char *line)
switch(state)
{
case 1:
+ {
img = new EmoticonImage();
img->pack = p;
img->name = txt;
img->module = module;
break;
+ }
case 3:
+ {
if (!isValidExtension(txt))
{
delete img;
@@ -1536,6 +1578,13 @@ EmoticonImage * HandleMepLine(EmoticonPack *p, char *line)
img->relPath = txt;
}
break;
+ }
+ case 5:
+ {
+ img->selectionFrame = max(0, atoi(txt) - 1);
+ mir_free(txt);
+ break;
+ }
}
state++;
@@ -1596,7 +1645,11 @@ BOOL LoadPack(EmoticonPack *pack)
tmp[pos] = 0;
strtrim(tmp);
- if (strnicmp("Name:", tmp, 5) == 0)
+ if (tmp[0] == '#')
+ {
+ // Do nothing
+ }
+ else if (strnicmp("Name:", tmp, 5) == 0)
{
char *name = strtrim(&tmp[5]);
if (name[0] != '\0')
@@ -1770,10 +1823,7 @@ void FillModuleImages(EmoticonPack *pack)
if (e->img != NULL)
continue;
- TCHAR err[1024];
- mir_sntprintf(err, MAX_REGS(err), _T(" *** The pack '%s' does not have the emoticon '") _T(TCHAR_STR_PARAM) _T("' needed by ") _T(TCHAR_STR_PARAM) _T("\n"),
- pack->description, e->name, m->name);
- OutputDebugString(err);
+ log(" *** The pack '" TCHAR_STR_PARAM "' does not have the emoticon '%s' needed by %s\n", pack->description, e->name, m->name);
}
}
}
@@ -2015,10 +2065,286 @@ void EmoticonImage::Download()
if (FileExists(tmp))
return;
- downloadQueue->AddIfDontHave(0, (HANDLE) this);
+ downloadQueue->AddIfDontHave(1000, (HANDLE) this);
+}
+
+struct ANIMATED_GIF_DATA
+{
+ FIMULTIBITMAP *multi;
+ FIBITMAP *dib;
+ int frameCount;
+ RGBQUAD background;
+ int width;
+ int height;
+ BOOL transparent;
+
+ struct {
+ int top;
+ int left;
+ int width;
+ int height;
+ int disposal_method;
+ } frame;
+};
+
+BOOL AnimatedGifGetData(ANIMATED_GIF_DATA &ag)
+{
+ FIBITMAP *page = fei->FI_LockPage(ag.multi, 0);
+ if (page == NULL)
+ return FALSE;
+
+ // Get info
+ FITAG *tag = NULL;
+ if (!fei->FI_GetMetadata(FIMD_ANIMATION, page, "LogicalWidth", &tag))
+ goto ERR;
+ ag.width = *(WORD *)fei->FI_GetTagValue(tag);
+
+ if (!fei->FI_GetMetadata(FIMD_ANIMATION, page, "LogicalHeight", &tag))
+ goto ERR;
+ ag.height = *(WORD *)fei->FI_GetTagValue(tag);
+
+ if (fei->FI_HasBackgroundColor(page))
+ fei->FI_GetBackgroundColor(page, &ag.background);
+
+ fei->FI_UnlockPage(ag.multi, page, FALSE);
+ return TRUE;
+
+ERR:
+ fei->FI_UnlockPage(ag.multi, page, FALSE);
+ return FALSE;
+}
+
+
+void AnimatedGifMountFrame(ANIMATED_GIF_DATA &ag, int page)
+{
+ FIBITMAP *dib = fei->FI_LockPage(ag.multi, page);
+ if (dib == NULL)
+ return;
+
+ FITAG *tag = NULL;
+ if (fei->FI_GetMetadata(FIMD_ANIMATION, dib, "FrameLeft", &tag))
+ ag.frame.left = *(WORD *)fei->FI_GetTagValue(tag);
+ else
+ ag.frame.left = 0;
+
+ if (fei->FI_GetMetadata(FIMD_ANIMATION, dib, "FrameTop", &tag))
+ ag.frame.top = *(WORD *)fei->FI_GetTagValue(tag);
+ else
+ ag.frame.top = 0;
+
+ if (fei->FI_GetMetadata(FIMD_ANIMATION, dib, "DisposalMethod", &tag))
+ ag.frame.disposal_method = *(BYTE *)fei->FI_GetTagValue(tag);
+ else
+ ag.frame.disposal_method = 0;
+
+ ag.frame.width = fei->FI_GetWidth(dib);
+ ag.frame.height = fei->FI_GetHeight(dib);
+
+
+ //decode page
+ int palSize = fei->FI_GetColorsUsed(dib);
+ RGBQUAD *pal = fei->FI_GetPalette(dib);
+ BOOL have_transparent = FALSE;
+ int transparent_color = -1;
+ if( fei->FI_IsTransparent(dib) ) {
+ int count = fei->FI_GetTransparencyCount(dib);
+ BYTE *table = fei->FI_GetTransparencyTable(dib);
+ for( int i = 0; i < count; i++ ) {
+ if( table[i] == 0 ) {
+ ag.transparent = TRUE;
+ have_transparent = TRUE;
+ transparent_color = i;
+ break;
+ }
+ }
+ }
+
+ //copy page data into logical buffer, with full alpha opaqueness
+ for( int y = 0; y < ag.frame.height; y++ ) {
+ RGBQUAD *scanline = (RGBQUAD *)fei->FI_GetScanLine(ag.dib, ag.height - (y + ag.frame.top) - 1) + ag.frame.left;
+ BYTE *pageline = fei->FI_GetScanLine(dib, ag.frame.height - y - 1);
+ for( int x = 0; x < ag.frame.width; x++ ) {
+ if( !have_transparent || *pageline != transparent_color ) {
+ *scanline = pal[*pageline];
+ scanline->rgbReserved = 255;
+ }
+ scanline++;
+ pageline++;
+ }
+ }
+
+ fei->FI_UnlockPage(ag.multi, dib, FALSE);
}
+
+HBITMAP LoadAnimatedGifFrame(char *filename, int frame, DWORD *transp)
+{
+ HBITMAP ret = NULL;
+ ANIMATED_GIF_DATA ag = {0};
+ int x, y, i;
+
+ FREE_IMAGE_FORMAT fif = fei->FI_GetFileType(filename, 0);
+ if(fif == FIF_UNKNOWN)
+ fif = fei->FI_GetFIFFromFilename(filename);
+
+ ag.multi = fei->FI_OpenMultiBitmap(fif, filename, FALSE, TRUE, FALSE, GIF_LOAD256);
+ if (ag.multi == NULL)
+ return NULL;
+
+ ag.frameCount = fei->FI_GetPageCount(ag.multi);
+ if (ag.frameCount <= 1)
+ goto ERR;
+
+ if (!AnimatedGifGetData(ag))
+ goto ERR;
+
+ //allocate entire logical area
+ ag.dib = fei->FI_Allocate(ag.width, ag.height, 32, 0, 0, 0);
+ if (ag.dib == NULL)
+ goto ERR;
+
+ //fill with background color to start
+ for (y = 0; y < ag.height; y++)
+ {
+ RGBQUAD *scanline = (RGBQUAD *) fei->FI_GetScanLine(ag.dib, y);
+ for (x = 0; x < ag.width; x++)
+ *scanline++ = ag.background;
+ }
+
+ for (i = 0; i <= frame && i < ag.frameCount; i++)
+ AnimatedGifMountFrame(ag, i);
+
+ ret = fei->FI_CreateHBITMAPFromDIB(ag.dib);
+
+ if (transp != NULL)
+ *transp = ag.transparent;
+
+ERR:
+ if (ag.multi != NULL)
+ fei->FI_CloseMultiBitmap(ag.multi, 0);
+ if (ag.dib != NULL)
+ fei->FI_Unload(ag.dib);
+
+ return ret;
+}
+
+
+HBITMAP LoadFlashBitmap(char *filename, int frame = 0)
+{
+ typedef HRESULT (WINAPI *LPAtlAxAttachControl)(IUnknown* pControl, HWND hWnd, IUnknown** ppUnkContainer);
+ static LPAtlAxAttachControl AtlAxAttachControl3 = NULL;
+
+ if (AtlAxAttachControl3 == (LPAtlAxAttachControl) -1)
+ {
+ return NULL;
+ }
+ else if (AtlAxAttachControl3 == NULL)
+ {
+ HMODULE atl = LoadLibrary(_T("atl"));
+ if (atl == NULL)
+ {
+ AtlAxAttachControl3 = (LPAtlAxAttachControl) -1;
+ return NULL;
+ }
+ void* init = GetProcAddress(atl, "AtlAxWinInit");
+ AtlAxAttachControl3 = (LPAtlAxAttachControl) GetProcAddress(atl, "AtlAxAttachControl");
+ if (init == NULL || AtlAxAttachControl3 == NULL)
+ {
+ AtlAxAttachControl3 = (LPAtlAxAttachControl) -1;
+ return NULL;
+ }
+ _asm call init;
+ }
+
+ int width = 40;
+ int height = 40;
+ IShockwaveFlash *flash = NULL;
+ IViewObjectEx *viewObject = NULL;
+ HRESULT hr;
+ HWND hWindow = NULL;
+ HBITMAP hBmp = NULL;
+ HDC hdc = NULL;
+ BOOL succeded = FALSE;
+ double val;
+
+ hWindow = CreateWindow(_T("AtlAxWin"), _T(""), WS_POPUP, 0, 0, width, height, NULL, (HMENU) 0, hInst, NULL);
+ if (hWindow == NULL) goto err;
+
+ hr = CoCreateInstance(__uuidof(ShockwaveFlash), 0, CLSCTX_INPROC_SERVER, __uuidof(IShockwaveFlash), (void **) &flash);
+ if (FAILED(hr)) goto err;
+
+ hr = AtlAxAttachControl3(flash, hWindow, 0);
+ if (FAILED(hr)) goto err;
+
+ {
+ WCHAR *tmp = mir_a2u(filename);
+ BSTR url = SysAllocString(tmp);
+
+ hr = flash->LoadMovie(0, url);
+
+ SysFreeString(url);
+ mir_free(tmp);
+ }
+
+ if (FAILED(hr)) goto err;
+
+ hr = flash->TGetPropertyAsNumber(L"/", 8, &val);
+ if (FAILED(hr)) goto err;
+ width = (int)(val + 0.5);
+
+ hr = flash->TGetPropertyAsNumber(L"/", 9, &val);
+ if (FAILED(hr)) goto err;
+ height = (int)(val + 0.5);
+
+ MoveWindow(hWindow, 0, 0, width, height, FALSE);
+
+ hr = flash->GotoFrame(frame);
+ if (FAILED(hr)) goto err;
+
+ hr = flash->QueryInterface(__uuidof(IViewObjectEx), (void **)&viewObject);
+ if (FAILED(hr)) goto err;
+
+ hBmp = CreateBitmap32(width, height);
+
+ hdc = CreateCompatibleDC(NULL);
+ SelectObject(hdc, hBmp);
+ SetBkMode(hdc, TRANSPARENT);
+
+ {
+ RECTL rectl = { 0, 0, width, height };
+ hr = viewObject->Draw(DVASPECT_CONTENT, -1, NULL, NULL, NULL, hdc, &rectl, &rectl, NULL, NULL);
+ if (FAILED(hr)) goto err;
+ }
+
+ succeded = TRUE;
+
+err:
+ if (hdc != NULL)
+ DeleteDC(hdc);
+
+ if (viewObject != NULL)
+ viewObject->Release();
+
+ if (flash != NULL)
+ flash->Release();
+
+ if (hWindow != NULL)
+ DestroyWindow(hWindow);
+
+ if (succeded)
+ {
+ return hBmp;
+ }
+ else
+ {
+ if (hBmp != NULL)
+ DeleteObject(hBmp);
+
+ return NULL;
+ }
+}
+
void EmoticonImage::Load(int &max_height, int &max_width)
{
if (img != NULL)
@@ -2033,11 +2359,23 @@ void EmoticonImage::Load(int &max_height, int &max_width)
}
DWORD transp;
-
char tmp[1024];
mir_snprintf(tmp, MAX_REGS(tmp), "%s\\%s", pack->path, relPath);
- img = (HBITMAP) CallService(MS_AV_LOADBITMAP32, (WPARAM) &transp, (LPARAM) tmp);
+ if (strcmp(&tmp[strlen(tmp)-4], ".swf") == 0)
+ {
+ img = LoadFlashBitmap(tmp, selectionFrame);
+ transp = TRUE;
+ }
+ else
+ {
+ // Try to get a frame
+ if (selectionFrame > 1)
+ img = LoadAnimatedGifFrame(tmp, selectionFrame, &transp);
+
+ if (img == NULL)
+ img = (HBITMAP) CallService(MS_AV_LOADBITMAP32, (WPARAM) &transp, (LPARAM) tmp);
+ }
if (img == NULL)
return;
diff --git a/Plugins/emoticons/emoticons.dsp b/Plugins/emoticons/emoticons.dsp
index 2628749..3714cab 100644
--- a/Plugins/emoticons/emoticons.dsp
+++ b/Plugins/emoticons/emoticons.dsp
@@ -164,6 +164,10 @@ SOURCE=.\commons.h
# End Source File
# Begin Source File
+SOURCE=..\utils\ContactAsyncQueue.h
+# End Source File
+# Begin Source File
+
SOURCE=.\m_emoticons.h
# End Source File
# Begin Source File
@@ -208,6 +212,10 @@ SOURCE=.\resource.rc
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
+SOURCE=..\utils\ContactAsyncQueue.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\emoticons.cpp
# End Source File
# Begin Source File
diff --git a/Plugins/emoticons/flash9e.tlh b/Plugins/emoticons/flash9e.tlh
new file mode 100644
index 0000000..0b210be
--- /dev/null
+++ b/Plugins/emoticons/flash9e.tlh
@@ -0,0 +1,338 @@
+// Created by Microsoft (R) C/C++ Compiler Version 12.00.8964.0 (367ef8f2).
+//
+// c:\desenvolvimento\miranda\plugins\emoticons\flash\debug\flash9e.tlh
+//
+// C++ source equivalent of Win32 type library c:\\windows\\system32\\macromed\\flash\\flash9e.ocx
+// compiler-generated file created 03/08/08 at 11:22:11 - DO NOT EDIT!
+
+#pragma once
+#pragma pack(push, 8)
+
+#include <comdef.h>
+
+//
+// Forward references and typedefs
+//
+
+struct __declspec(uuid("d27cdb6c-ae6d-11cf-96b8-444553540000"))
+/* dual interface */ IShockwaveFlash;
+struct __declspec(uuid("d27cdb6d-ae6d-11cf-96b8-444553540000"))
+/* dispinterface */ _IShockwaveFlashEvents;
+struct /* coclass */ ShockwaveFlash;
+struct __declspec(uuid("d27cdb70-ae6d-11cf-96b8-444553540000"))
+/* interface */ IFlashFactory;
+struct __declspec(uuid("d27cdb72-ae6d-11cf-96b8-444553540000"))
+/* interface */ IFlashObjectInterface;
+struct __declspec(uuid("a6ef9860-c720-11d0-9337-00a0c90dcaa9"))
+/* interface */ IDispatchEx;
+struct __declspec(uuid("6d5140c1-7436-11ce-8034-00aa006009fa"))
+/* interface */ IServiceProvider;
+struct /* coclass */ FlashObjectInterface;
+
+//
+// Smart pointer typedef declarations
+//
+
+_COM_SMARTPTR_TYPEDEF(IShockwaveFlash, __uuidof(IShockwaveFlash));
+_COM_SMARTPTR_TYPEDEF(_IShockwaveFlashEvents, __uuidof(IDispatch));
+_COM_SMARTPTR_TYPEDEF(IFlashFactory, __uuidof(IFlashFactory));
+_COM_SMARTPTR_TYPEDEF(IDispatchEx, __uuidof(IDispatchEx));
+_COM_SMARTPTR_TYPEDEF(IFlashObjectInterface, __uuidof(IFlashObjectInterface));
+_COM_SMARTPTR_TYPEDEF(IServiceProvider, __uuidof(IServiceProvider));
+
+//
+// Type library items
+//
+
+struct __declspec(uuid("d27cdb6c-ae6d-11cf-96b8-444553540000"))
+IShockwaveFlash : IDispatch
+{
+ //
+ // Raw methods provided by interface
+ //
+
+ virtual HRESULT __stdcall get_ReadyState (
+ long * pVal ) = 0;
+ virtual HRESULT __stdcall get_TotalFrames (
+ long * pVal ) = 0;
+ virtual HRESULT __stdcall get_Playing (
+ VARIANT_BOOL * pVal ) = 0;
+ virtual HRESULT __stdcall put_Playing (
+ VARIANT_BOOL pVal ) = 0;
+ virtual HRESULT __stdcall get_Quality (
+ int * pVal ) = 0;
+ virtual HRESULT __stdcall put_Quality (
+ int pVal ) = 0;
+ virtual HRESULT __stdcall get_ScaleMode (
+ int * pVal ) = 0;
+ virtual HRESULT __stdcall put_ScaleMode (
+ int pVal ) = 0;
+ virtual HRESULT __stdcall get_AlignMode (
+ int * pVal ) = 0;
+ virtual HRESULT __stdcall put_AlignMode (
+ int pVal ) = 0;
+ virtual HRESULT __stdcall get_BackgroundColor (
+ long * pVal ) = 0;
+ virtual HRESULT __stdcall put_BackgroundColor (
+ long pVal ) = 0;
+ virtual HRESULT __stdcall get_Loop (
+ VARIANT_BOOL * pVal ) = 0;
+ virtual HRESULT __stdcall put_Loop (
+ VARIANT_BOOL pVal ) = 0;
+ virtual HRESULT __stdcall get_Movie (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_Movie (
+ BSTR pVal ) = 0;
+ virtual HRESULT __stdcall get_FrameNum (
+ long * pVal ) = 0;
+ virtual HRESULT __stdcall put_FrameNum (
+ long pVal ) = 0;
+ virtual HRESULT __stdcall SetZoomRect (
+ long left,
+ long top,
+ long right,
+ long bottom ) = 0;
+ virtual HRESULT __stdcall Zoom (
+ int factor ) = 0;
+ virtual HRESULT __stdcall Pan (
+ long x,
+ long y,
+ int mode ) = 0;
+ virtual HRESULT __stdcall Play ( ) = 0;
+ virtual HRESULT __stdcall Stop ( ) = 0;
+ virtual HRESULT __stdcall Back ( ) = 0;
+ virtual HRESULT __stdcall Forward ( ) = 0;
+ virtual HRESULT __stdcall Rewind ( ) = 0;
+ virtual HRESULT __stdcall StopPlay ( ) = 0;
+ virtual HRESULT __stdcall GotoFrame (
+ long FrameNum ) = 0;
+ virtual HRESULT __stdcall CurrentFrame (
+ long * FrameNum ) = 0;
+ virtual HRESULT __stdcall IsPlaying (
+ VARIANT_BOOL * Playing ) = 0;
+ virtual HRESULT __stdcall PercentLoaded (
+ long * percent ) = 0;
+ virtual HRESULT __stdcall FrameLoaded (
+ long FrameNum,
+ VARIANT_BOOL * loaded ) = 0;
+ virtual HRESULT __stdcall FlashVersion (
+ long * version ) = 0;
+ virtual HRESULT __stdcall get_WMode (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_WMode (
+ BSTR pVal ) = 0;
+ virtual HRESULT __stdcall get_SAlign (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_SAlign (
+ BSTR pVal ) = 0;
+ virtual HRESULT __stdcall get_Menu (
+ VARIANT_BOOL * pVal ) = 0;
+ virtual HRESULT __stdcall put_Menu (
+ VARIANT_BOOL pVal ) = 0;
+ virtual HRESULT __stdcall get_Base (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_Base (
+ BSTR pVal ) = 0;
+ virtual HRESULT __stdcall get_Scale (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_Scale (
+ BSTR pVal ) = 0;
+ virtual HRESULT __stdcall get_DeviceFont (
+ VARIANT_BOOL * pVal ) = 0;
+ virtual HRESULT __stdcall put_DeviceFont (
+ VARIANT_BOOL pVal ) = 0;
+ virtual HRESULT __stdcall get_EmbedMovie (
+ VARIANT_BOOL * pVal ) = 0;
+ virtual HRESULT __stdcall put_EmbedMovie (
+ VARIANT_BOOL pVal ) = 0;
+ virtual HRESULT __stdcall get_BGColor (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_BGColor (
+ BSTR pVal ) = 0;
+ virtual HRESULT __stdcall get_Quality2 (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_Quality2 (
+ BSTR pVal ) = 0;
+ virtual HRESULT __stdcall LoadMovie (
+ int layer,
+ BSTR url ) = 0;
+ virtual HRESULT __stdcall TGotoFrame (
+ BSTR target,
+ long FrameNum ) = 0;
+ virtual HRESULT __stdcall TGotoLabel (
+ BSTR target,
+ BSTR label ) = 0;
+ virtual HRESULT __stdcall TCurrentFrame (
+ BSTR target,
+ long * FrameNum ) = 0;
+ virtual HRESULT __stdcall TCurrentLabel (
+ BSTR target,
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall TPlay (
+ BSTR target ) = 0;
+ virtual HRESULT __stdcall TStopPlay (
+ BSTR target ) = 0;
+ virtual HRESULT __stdcall SetVariable (
+ BSTR name,
+ BSTR value ) = 0;
+ virtual HRESULT __stdcall GetVariable (
+ BSTR name,
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall TSetProperty (
+ BSTR target,
+ int property,
+ BSTR value ) = 0;
+ virtual HRESULT __stdcall TGetProperty (
+ BSTR target,
+ int property,
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall TCallFrame (
+ BSTR target,
+ int FrameNum ) = 0;
+ virtual HRESULT __stdcall TCallLabel (
+ BSTR target,
+ BSTR label ) = 0;
+ virtual HRESULT __stdcall TSetPropertyNum (
+ BSTR target,
+ int property,
+ double value ) = 0;
+ virtual HRESULT __stdcall TGetPropertyNum (
+ BSTR target,
+ int property,
+ double * pVal ) = 0;
+ virtual HRESULT __stdcall TGetPropertyAsNumber (
+ BSTR target,
+ int property,
+ double * pVal ) = 0;
+ virtual HRESULT __stdcall get_SWRemote (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_SWRemote (
+ BSTR pVal ) = 0;
+ virtual HRESULT __stdcall get_FlashVars (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_FlashVars (
+ BSTR pVal ) = 0;
+ virtual HRESULT __stdcall get_AllowScriptAccess (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_AllowScriptAccess (
+ BSTR pVal ) = 0;
+ virtual HRESULT __stdcall get_MovieData (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_MovieData (
+ BSTR pVal ) = 0;
+ virtual HRESULT __stdcall get_InlineData (
+ IUnknown * * ppIUnknown ) = 0;
+ virtual HRESULT __stdcall put_InlineData (
+ IUnknown * ppIUnknown ) = 0;
+ virtual HRESULT __stdcall get_SeamlessTabbing (
+ VARIANT_BOOL * pVal ) = 0;
+ virtual HRESULT __stdcall put_SeamlessTabbing (
+ VARIANT_BOOL pVal ) = 0;
+ virtual HRESULT __stdcall EnforceLocalSecurity ( ) = 0;
+ virtual HRESULT __stdcall get_Profile (
+ VARIANT_BOOL * pVal ) = 0;
+ virtual HRESULT __stdcall put_Profile (
+ VARIANT_BOOL pVal ) = 0;
+ virtual HRESULT __stdcall get_ProfileAddress (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_ProfileAddress (
+ BSTR pVal ) = 0;
+ virtual HRESULT __stdcall get_ProfilePort (
+ long * pVal ) = 0;
+ virtual HRESULT __stdcall put_ProfilePort (
+ long pVal ) = 0;
+ virtual HRESULT __stdcall CallFunction (
+ BSTR request,
+ BSTR * response ) = 0;
+ virtual HRESULT __stdcall SetReturnValue (
+ BSTR returnValue ) = 0;
+ virtual HRESULT __stdcall DisableLocalSecurity ( ) = 0;
+ virtual HRESULT __stdcall get_AllowNetworking (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_AllowNetworking (
+ BSTR pVal ) = 0;
+ virtual HRESULT __stdcall get_AllowFullScreen (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_AllowFullScreen (
+ BSTR pVal ) = 0;
+};
+
+struct __declspec(uuid("d27cdb6d-ae6d-11cf-96b8-444553540000"))
+_IShockwaveFlashEvents : IDispatch
+{};
+
+struct __declspec(uuid("d27cdb6e-ae6d-11cf-96b8-444553540000"))
+ShockwaveFlash;
+ // [ default ] interface IShockwaveFlash
+ // [ default, source ] dispinterface _IShockwaveFlashEvents
+
+struct __declspec(uuid("d27cdb70-ae6d-11cf-96b8-444553540000"))
+IFlashFactory : IUnknown
+{};
+
+struct __declspec(uuid("a6ef9860-c720-11d0-9337-00a0c90dcaa9"))
+IDispatchEx : IDispatch
+{
+ //
+ // Raw methods provided by interface
+ //
+
+ virtual HRESULT __stdcall GetDispID (
+ BSTR bstrName,
+ unsigned long grfdex,
+ long * pid ) = 0;
+ virtual HRESULT __stdcall RemoteInvokeEx (
+ long id,
+ unsigned long lcid,
+ unsigned long dwFlags,
+ struct DISPPARAMS * pdp,
+ VARIANT * pvarRes,
+ struct EXCEPINFO * pei,
+ struct IServiceProvider * pspCaller,
+ unsigned int cvarRefArg,
+ unsigned int * rgiRefArg,
+ VARIANT * rgvarRefArg ) = 0;
+ virtual HRESULT __stdcall DeleteMemberByName (
+ BSTR bstrName,
+ unsigned long grfdex ) = 0;
+ virtual HRESULT __stdcall DeleteMemberByDispID (
+ long id ) = 0;
+ virtual HRESULT __stdcall GetMemberProperties (
+ long id,
+ unsigned long grfdexFetch,
+ unsigned long * pgrfdex ) = 0;
+ virtual HRESULT __stdcall GetMemberName (
+ long id,
+ BSTR * pbstrName ) = 0;
+ virtual HRESULT __stdcall GetNextDispID (
+ unsigned long grfdex,
+ long id,
+ long * pid ) = 0;
+ virtual HRESULT __stdcall GetNameSpaceParent (
+ IUnknown * * ppunk ) = 0;
+};
+
+struct __declspec(uuid("d27cdb72-ae6d-11cf-96b8-444553540000"))
+IFlashObjectInterface : IDispatchEx
+{};
+
+/*
+struct __declspec(uuid("6d5140c1-7436-11ce-8034-00aa006009fa"))
+IServiceProvider : IUnknown
+{
+ //
+ // Raw methods provided by interface
+ //
+
+ virtual HRESULT __stdcall RemoteQueryService (
+ GUID * guidService,
+ GUID * riid,
+ IUnknown * * ppvObject ) = 0;
+};
+*/
+
+struct __declspec(uuid("d27cdb71-ae6d-11cf-96b8-444553540000"))
+FlashObjectInterface;
+ // [ default ] interface IFlashObjectInterface
+
+#pragma pack(pop)
diff --git a/Plugins/emoticons/selwin.cpp b/Plugins/emoticons/selwin.cpp
index 0229609..9aba03c 100644
--- a/Plugins/emoticons/selwin.cpp
+++ b/Plugins/emoticons/selwin.cpp
@@ -2,8 +2,9 @@
#define MIN_COLS 5
-#define MAX_LINES 5
-#define BORDER 5
+#define MAX_LINES 8
+#define MAX_COLS 12
+#define BORDER 3
struct EmoticonSelectionData
@@ -236,7 +237,7 @@ INT_PTR CALLBACK EmoticonSeletionDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPA
ssd->cols = num_emotes / MAX_LINES;
if (num_emotes % MAX_LINES != 0)
ssd->cols++;
- ssd->cols = max(ssd->cols, MIN_COLS);
+ ssd->cols = min(max(ssd->cols, MIN_COLS), MAX_COLS);
ssd->lines = num_emotes / ssd->cols;
if (num_emotes % ssd->cols != 0)
@@ -445,6 +446,7 @@ INT_PTR CALLBACK EmoticonSeletionDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPA
// Copy buffer to screen
BitBlt(hdc_orig, rc.left, rc.top, rc.right - rc.left,
rc.bottom - rc.top, hdc, rc.left, rc.top, SRCCOPY);
+
DeleteDC(hdc);
DeleteObject(hBmp);
diff --git a/Plugins/emoticons/selwin.h b/Plugins/emoticons/selwin.h
index b55b4c6..9a8ae23 100644
--- a/Plugins/emoticons/selwin.h
+++ b/Plugins/emoticons/selwin.h
@@ -24,6 +24,7 @@ Boston, MA 02111-1307, USA.
int ShowSelectionService(WPARAM wParam, LPARAM lParam);
+HBITMAP CreateBitmap32(int cx, int cy);
#endif // __SELWIN_H__